Никогда не учился работать с потоками для чтения / записи данных, вместо этого я использую старый Pascal способ. Теперь все говорят, что это неэффективно, и я хотел бы изучить способ потоковой передачи файлов, но не могу по-настоящему работать с доступными учебными пособиями. Я использую Excel для создания и управления наборами данных (большие таблицы данных с одним или двумя заголовками). Я сохраняю их как * .txt файлы (с разделителями табуляции). Эти файлы я читаю с помощью Delphi, чтобы заполнить свои записи и массивы и т. Д. c. Ниже приведен упрощенный пример кода того, что я делаю сейчас. Если имеет смысл заменить это потоками данных, кто-нибудь может дать мне пример кода, как это будет работать? Спасибо - Фред
Type
TMyRecord = record // in reality my record file is more complex
ID : integer;
Tekst : string;
R1 : char;
end;
Procedure TForm1.FormCreate(Sender: TObject);
var
MainDir : string; // local directory of the executable
Tfile : textfile;
Fname, T : string;
N : integer;
C : char;
MyData : TMyRecord;
begin
MainDir := GetCurrentDir;
Fname := MainDir + '/Data/File1.txt'; // File1.txt = tab delimited text file
AssignFile(Tfile, Fname);
N := 0;
Try
If FileExists(FName) then begin
reset(Tfile);
while not EOF(Tfile) do begin // find number of record lines
readln(Tfile);
N := N + 1; // not used here, but N = total # of records; required to know!
end;
N := N-1; // correct for the header line not used here
Reset(Tfile);
Readln(Tfile); // read the header (no record data), skip
T := '';
while not EOF(Tfile) do begin
Read(Tfile, MyData.ID, C); // C = read the tab
Read(Tfile, C);
while C <> #9 do begin
T := T + C;
Read(Tfile, C);
end;
MyData.Tekst := T;
Read(TFile, MyData.R1);
Readln(Tfile); // proceed to the next line
end;
end;
Finally
closefile(Tfile);