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; // *****************************************
Partager