Bonjour,
Je désire lire rapidement un fichier de dictionnaire de mots dico.txt (récupéré sur internet) de 4,4 méga-octets et de 364.370 lignes.
Le fichier est de type :
AA
AAS
ABACA
ABACAS
ABACOST
Je suis en delphi 7 et j'utilise un composant TTable.
la lecture est très rapide <1 seconde mais je ne récupère que 2 caractères par enregistrement pourquoi ?
Les instructions :
Table1.FieldDefs[0].precision:=30;
Table1.FieldDefs[0].Size:=30;
n'ont aucun effet.
Autres tests :
- en utilisant directement un TlisBox le chargement prend 37 secondes
- en passant par un fichier XML binaire (DICO.CDS 5 méga) 20 secondes
D'avance merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
// *****************************************
procedure TForm1. CHERCHE_DICO;
VAR
  FICHIER : STRING;
begin
  TRY
    FICHIER:=REPERTOIRE_APPLI(TRUE)+'dico.txt';
    IF NOT FILEEXISTS(FICHIER) THEN
    Begin
      Showmessage('Il manque : '+ FICHIER);
      CLOSE;
    END;
    Table1.CLOSE;
    Table1.DATABASENAME:= ExtractFilePath(FICHIER);
    Table1.TABLENAME:=ExtractFileName(FICHIER);
    FORM1.CAPTION:=FICHIER;
    Table1.TableType:=ttASCII; //ttDefault;
    // Table1.FileType:=DELIMITED LONGINT ; // N'existe pas
    Table1.EXCLUSIVE:=FALSE;
    Table1.READONLY:=True;
    Table1.Filtered:=True;
    Table1.FieldDefs[0].DataType:=FTString;
    Table1.FieldDefs[0].precision:=30;
    Table1.FieldDefs[0].Size:=30;
    Table1.ACTIVE:=TRUE;
    DBGrid1.Columns[0].Title.caption:='Dictionnaire';
    DBGrid1.Columns[0].Width:=Panel2.Width;
    DBGrid1.Columns[0].FieldName:='FIELD1';
    Edit_NOM_RECHERCHE.SetFocus;
  EXCEPT
    SCREEN.CURSOR:=CRDEFAULT;
    SHOWMESSAGE('ERREUR : '+ FICHIER);
  END;
end;
// *****************************************