Comment la valeur d’un tableau devient nulle en Java si elle est utilisée dans le cadre ? Je fournis le code Java correspondant…

la programmation


Le reste du code non mentionné ici est correct…

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)
                                {
                                    
                                }
                            }
                        }
}

Ce que j’ai essayé :

Je n’arrive pas à comprendre pourquoi l’unité[n][i] devient nul juste après avoir affiché la première valeur, lorsque des enregistrements sont présents dans le fichier

Solution 1

Comme Richard l’a dit, cela dépendra des données traitées et nous n’avons pas accès à votre système de fichiers – le débogueur est (comme toujours) votre meilleur ami ici car il peut vous montrer exactement ce qui se passe pendant l’exécution de votre programme.
Donc, ça va dépendre de vous.

Heureusement, vous disposez d’un outil qui vous aidera à comprendre ce qui se passe : le débogueur. La façon dont vous l’utilisez dépend de votre système de compilateur, mais un rapide recherche sur Google du nom de votre IDE et de votre “débogueur” devrait vous donner les informations dont vous avez besoin.

Placez un point d’arrêt sur la première ligne de la fonction et exécutez votre code via le débogueur. Ensuite, examinez votre code et vos données et déterminez ce qui doit se produire manuellement. Ensuite, passez chaque ligne en vérifiant que ce à quoi vous vous attendiez est exactement ce qui s’est produit. Lorsque ce n’est pas le cas, c’est à ce moment-là que vous avez un problème et vous pouvez revenir en arrière (ou l’exécuter à nouveau et regarder de plus près) pour découvrir pourquoi.

Désolé, mais nous ne pouvons pas faire cela à votre place. Il est temps pour vous d’apprendre une nouvelle (et très, très utile) compétence : le débogage !

Mais rendez-vous deux grands services :
1) Arrêtez d’utiliser des noms de variables très courts : utilisez des noms significatifs au lieu de “a”, “p”, “jj”, “y”, “c”, etc. et votre code devient à la fois beaucoup plus lisible, mais aussi plus fiable. car c’est plus évident lorsque vous utilisez la mauvaise variable par erreur…

2) Arrêtez d’avaler des exceptions.

Java
catch(IOException e)
{

}

peut faire “disparaître” une erreur, mais il est fort possible qu’une exception avalée soit à l’origine du problème que vous avez constaté. Si vous souhaitez ignorer une erreur, enregistrez-la dans un fichier du catch bloquez donc si quelque chose ne va pas, vous pouvez regarder en arrière pour voir quels problèmes vous avez ignorés.

コメント

タイトルとURLをコピーしました