AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spaltenweise auf TStringList zugreifen

Ein Thema von aaaaaaaaaa_10 · begonnen am 27. Jul 2009 · letzter Beitrag vom 30. Jul 2009
 
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#11

Re: Spaltenweise auf TStringList zugreifen

  Alt 28. Jul 2009, 08:07
Habe es jetzt ersteinmal folgendermaßen zu lösen versucht (ohne Berechnung):

Delphi-Quellcode:
procedure ZehnMinTimerEvent(Sender: TObject);
var
  Sek, Min, ZwSpeicher : TStringList;
  DreiSek, ZehnMin, temp1, temp2 : string;
  Spaltenanzahl, Zeilenanzahl,z,s : integer;
  StringArray: array of array of string;
  TestDatei : TFileStream;
begin
  DreiSek := extractfilepath(application.exename)+'3sek_'+Kennung+'.txt';
  ZehnMin := extractfilepath(application.exename)+'10min_'+Kennung+'.txt';
  TestDatei := TFileStream.Create(ExtractFilePath(application.exename)+'test.txt', fmCreate);

  Sek := TStringList.Create;
  Min := TStringList.Create;
  ZwSpeicher := TStringList.Create;

  try
    Sek.LoadFromFile(DreiSek);
    Min.LoadFromFile(ZehnMin);

    temp1 := Sek.Strings[Sek.Count-1];
    temp2 := Min.Strings[Min.Count-1];

    while Min.Count >= 2 do //maximal 1 Zeile + Header
      Min.Delete(1);

    if temp1 <> temp2 then
       ZwSpeicher.Delimiter := #9;
       if Sek.Count >= 2 then
       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);

        for z := 0 to Zeilenanzahl-1 do
        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;
         Temp := (StringArray[s,z]) + #13#10;
         TestDatei.Write(PChar(Temp)^,Length(Temp));
        end;
       end;
      end;
  finally
    TestDatei.Free;
    ZwSpeicher.Free;
    Min.Free;
    Sek.Free;
  end;
end;
Funktioniert an sich ganz gut, aber irgendetwas läuft da noch schief. Kommt eine neue Zeile in der 3SekDatei hinzu wird die im ZwSpeicher zu einer Spalte und sollte von dort ins Array und somit in die Test.txt geschrieben werden...In die Test.txt wird aber immer nur die neue Zeile geschrieben und zwar so oft, wie Zeilen in der 3SekDatei vorhanden sind.Die vorherigen verschwinden. Was mache ich falsch?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz