[ad_1]
Kode lainnya yang tidak disebutkan di sini sudah benar…
import java.io.File; import javax.swing.JOptionPane; class abc { // Fall is a directory of files for(File fr:Fall.listFiles()) { // jtxt is an object of JTextArea() if((jtxt.getText().contains("select ")) && (jtxt.getText().contains(" from ")) && (!jtxt.getText().contains(",")) && (jtxt.getText().contains(fr.getName())) && (ke.getKeyCode()==10)) { String strField=jtxt.getText().substring(7).strip(); String crunch=""; char []p=strField.toCharArray(); char []a=new char[p.length]; for(int i=0;i<p.length;i++) { if(p[i]!=' ') { crunch +=p[i]; } if(p[i]==' ') { break; } } a=crunch.toCharArray(); String [] cell=new String[1]; for(int i=0;i<a.length;i++) { cell[0]+=a[i]; } String [] cc=new String[cell.length]; cc[0]=cell[0].substring(4); JOptionPane.showMessageDialog(null, cc[0]); try { FileReader fread=new FileReader(fr.getAbsolutePath()+"//"+"tbl"); BufferedReader in=new BufferedReader(fread); String sql="";int val=0;int k=0; while((sql=in.readLine())!=null) { char [] pp=sql.toCharArray(); char []aa=new char[pp.length]; String []field=new String[p.length]; int j=0; for(int i=0;i<pp.length;i++) { if(pp[i]!='-') { aa[i]=pp[i]; field[j]+=aa[i]; } if(pp[i]=='-') { j++; } } for(int i=0;i<j;i++) { if(cell[0].equals(field[i])) { val=i; } } k++; } int ss=0;int t=0; try { fread=new FileReader(fr.getAbsolutePath()+"//"+"data"); in=new BufferedReader(fread); JOptionPane.showMessageDialog(null, val); String str=""; ss=(int)in.lines().count(); while((str=in.readLine())!=null) { t=in.readLine().length(); } fread.close(); in.close(); } catch(IOException e) { } JOptionPane.showMessageDialog(null,"ss "+ ss); String [][] g=new String[ss][t+250]; String [][] Unit=new String[ss][t+250]; String[] s=new String[ss]; try { fread=new FileReader(fr.getAbsolutePath()+"//"+"data"); in=new BufferedReader(fread);int y=0; String str="";int n=0;int jj=0; while((str=in.readLine())!=null) { //JOptionPane.showMessageDialog(null, str); char[] u=str.toCharArray(); char[] b=new char[u.length]; for(int i=0;i<u.length;i++) { if(u[i]!='-') { b[i]=u[i]; Unit[y][jj]+=b[i]; } if(u[i]=='-') { JOptionPane.showMessageDialog(null,"unit : "+ Unit[y][jj]); jj++;JOptionPane.showMessageDialog(null, "y : "+y); } } y++; } str=""; in.close(); fread.close();n=0; fread=new FileReader(fr.getAbsolutePath()+"//"+"data"); in=new BufferedReader(fread);int b=1;int c=0; if(y==ss) { while(n<ss) { for(int i=0;i<jj-1;i++) { if(i==val) { g[n][i]=Unit[n][i]; JOptionPane.showMessageDialog(null, "g[c][i] : "+g[n][i]); // the problem is here g[n][i] shows the first value correctly. but thenafter // it shows the values to be null, although the values are present in the file. } } n++;c++; } fread.close(); in.close(); n=0; TableViewStatic tvs=new TableViewStatic(g,cc,fr.getName()); JTextFrame jf=new JTextFrame(tvs,jtxt,"SQL NoteBook"); //These methods are correct } } catch(IOException e) { } } catch(IOException e) { } } } }
Apa yang saya coba:
Saya tidak mengerti mengapa Unit[n][i] menjadi nol tepat setelah menampilkan nilai pertama, ketika ada catatan dalam file
Solusi 1
Seperti yang dikatakan Richard, ini akan bergantung pada data yang diproses, dan kami tidak memiliki akses ke sistem file Anda – debugger (seperti biasa) adalah teman terbaik Anda di sini karena dapat menunjukkan dengan tepat apa yang terjadi saat program Anda berjalan.
Jadi, itu terserah Anda.
Untungnya, Anda memiliki alat yang dapat membantu Anda mengetahui apa yang sedang terjadi: debugger. Cara Anda menggunakannya bergantung pada sistem kompiler Anda, tetapi Google cepat untuk nama IDE dan “debugger” Anda akan memberikan informasi yang Anda butuhkan.
Letakkan breakpoint pada baris pertama fungsi, dan jalankan kode Anda melalui debugger. Kemudian lihat kode Anda, dan data Anda, lalu cari tahu apa yang harus terjadi secara manual. Kemudian satu langkah setiap baris untuk memeriksa apakah apa yang Anda harapkan terjadi adalah apa yang terjadi. Jika tidak, saat itulah Anda mempunyai masalah, dan Anda dapat menelusuri kembali (atau menjalankannya lagi dan melihat lebih dekat) untuk mencari tahu alasannya.
Maaf, kami tidak dapat melakukannya untuk Anda – saatnya Anda mempelajari keterampilan baru (dan sangat, sangat berguna): debugging!
Namun bantulah diri Anda sendiri dengan dua bantuan besar:
1) Berhenti menggunakan nama variabel yang sangat pendek: gunakan nama yang bermakna daripada “a”, “p”, “jj”, “y”, “c”, dan seterusnya dan kode Anda menjadi lebih mudah dibaca, tetapi juga lebih dapat diandalkan karena lebih jelas ketika Anda tidak sengaja menggunakan variabel yang salah …
2) Berhenti menelan pengecualian.
catch(IOException e)
{
}
mungkin membuat kesalahan “hilang” tetapi sangat mungkin pengecualian yang tertelan menyebabkan masalah yang Anda lihat. Jika Anda ingin mengabaikan kesalahan, catat kesalahan tersebut ke file di catch
blok jadi jika terjadi kesalahan Anda dapat melihat kembali untuk melihat masalah apa yang Anda abaikan.
[ad_2]
コメント