(Gast)
n/a Beiträge
|
Re: Spaltenweise auf TStringList zugreifen
29. Jul 2009, 09:02
Tausden dank. Ich poste mal den Code:
Delphi-Quellcode:
procedure ZehnMinTimerEvent(Sender: TObject);
var
Sek, Min, ZwSpeicher : TStringList;
DreiSek, ZehnMin,Temp, temp1, temp2, DatUhr, Datei : string;
TabPos, Spaltenanzahl, Zeilenanzahl,s, z : integer;
StringArray: array of array of string;
TestDatei : TFileStream;
begin
DreiSek := extractfilepath(application.exename)+'Mom3sek_'+Kennung+'.txt';
ZehnMin := extractfilepath(application.exename)+'Mom10min_'+Kennung+'.txt';
TestDatei := TFileStream.Create(ExtractFilePath(application.exename)+'test.txt', fmCreate or
fmOpenReadWrite);
Sek := TStringList.Create;
Min := TStringList.Create;
ZwSpeicher := TStringList.Create;
try
Sek.LoadFromFile(DreiSek);
Min.LoadFromFile(ZehnMin);
temp1 := Sek.Strings[Sek.Count-1]; //letzte Zeile der 3SekDatei
temp2 := Min.Strings[Min.Count-1]; //letzte Zeile der 10MinDatei
while Min.Count >= 2 do //maximal 1 Zeile + Header
Min.Delete(1);
if temp1 <> temp2 then
begin
TabPos := posEx(#9,temp1,13);
if TabPos <> 0 then
begin
DatUhr := Copy(temp1,0,TabPos); //Datum und Uhrzeit einfügen
ZwSpeicher.Delimiter := #9;
if Sek.Count >= 2 then //ab der 1.Zeile + Header anfangen
begin
ZwSpeicher.DelimitedText := Sek.Strings[Sek.Count-1];
Spaltenanzahl := ZwSpeicher.Count-2; //ohne Datum und Uhrzeit
Zeilenanzahl := Sek.Count-1; //ohne Header
Setlength(StringArray,Spaltenanzahl,Zeilenanzahl);
begin
z := Zeilenanzahl-1;
begin;
for s := 0 to Spaltenanzahl-2 do
begin
StringArray[s,z] := ZwSpeicher.Strings[s+2];
Temp := (StringArray[s,z]) + ';';
TestDatei.Write(PChar(Temp)^,Length(Temp));
end;
StringArray[Spaltenanzahl-1,z] := ZwSpeicher.Strings[ZwSpeicher.Count-1];
Temp := (StringArray[Spaltenanzahl-1,z]) + #13#10;
TestDatei.Write(PChar(Temp)^,Length(Temp));
end;
end;
end;
Min.Add(DatUhr);
end;
Min.SaveToFile(ZehnMin);
end;
finally
TestDatei.Free;
ZwSpeicher.Free;
Min.Free;
Sek.Free;
end;
end;
Ich denke, es sollte so fast stimmen. Allerdings wird immernoch nur eine neue zeile in die datei geschrieben und nicht wie gewollt die neue unter die alte gehängt
|
|
Zitat
|