in realtà mi sono accorto di non aver risolto praticamente nulla.
ho un file di testo scritto così:
Valore1|Valore2|Valore3|Valore4|Valore5
avevo pensato ad un codice del genere:
codice:
var Data: TextFile;
r: integer;
c: integer;
testo,parte1,parte2,parte3,parte4,parte5:string;
delimiter:string;
parte:string;
begin //carica il file di testo delimitato
assignfile(data, ExtractFilePath(ParamStr(0)) + 'libreria\tavola1.dll');
reset(data);
GrigliaOggetti.ColCount:=5;
GrigliaOggetti.ColWidths[0]:=150;
GrigliaOggetti.ColWidths[1]:=120; //Ridimensiona una colonna specifica alla
while not eoln(data) do //larghezza desiderata!!!
begin
read(data,testo);
parte1:=copy(testo,1, pos(listaoggetti.items.Delimiter,testo)-1);
parte2:=copy(testo, pos(listaoggetti.items.Delimiter,testo)+1, pos(listaoggetti.items.Delimiter,testo)+1);
parte3:=copy(testo, pos(listaoggetti.items.Delimiter,testo)+1, Length(testo));
ListaOggetti.AddItem(parte1+' '+parte2,Sender);
GrigliaOggetti.Cells[c+1,r]:=parte2;
GrigliaOggetti.Cells[c,r]:=parte1;
GrigliaOggetti.Cells[c+2,r]:=parte3;
readln(data);
r:=r+1;
GrigliaOggetti.RowCount:=r;
end;
cioè: preleva una stringa intera.
leggila e copia la prima parte, fino al primo delimitatore, nela variabile parte1
leggi dal secondo delimitatore al terzo e compialo nella variabile parte2 e così via...
poi scrivi queste parti nelle righe della TStringGrid grigliaOggetti....
solo che la procedura funziona solo fino al primo delimitatore, dal secondo in poi, tutto viene copiato in un'unica riga, come se non vi fossero altri delimiter...
come mai?
alka, ti prego torna da me!