Einzelnen Beitrag anzeigen

Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: Bestimmte Daten aus Stringlist auslesen

  Alt 13. Feb 2010, 13:01
Hallo Daywalker. Danke für deinen Tipp. Die Funktion high() kannte ich noch gar nicht.

Meine erste Frage hat sich auch geklärt. Ich war gestern anscheinend einfach zu müde. Ich hatte bei der Zeile, welche im unten stehenden Code x := i+1 das "+1* vergessen und deswegen wurde natürlich immer gleich im ersten Durchlauf der darunterstehenden Schleife ein "Job:" gefunden...

Delphi-Quellcode:
jobCount := 0; // Jobanzahl zu Beginn = 0
  i := 0; // Schleifenzähler für while-Schleife
  while i < Bufferlist.Count - 1 do
  begin
    if Pos('Job:', Bufferlist[i]) <> 0 then // wenn in Zeile[i] Job vorhanden...
    begin;
      c := 0; // Arrayzähler = 0
      SetLength(jobArray, jobCount+1);
      jobArray[jobCount].j_id := jobCount-1;
      x := i+1;
      a := Bufferlist.Count;

      while x < a do // von Zeile i bis zur nächsten Zeile mit Job, oder Dateiende
      begin
        if Pos('Job:', Bufferlist[x]) <> 0 then
          a := x; // Schleifenenabbruch festlegen

        if Pos('Oper:', Bufferlist[x]) <> 0 then // falls Oper in Zeile
        begin
          a := PosEx(';', Bufferlist[x], 1);
          b := PosEx(';', Bufferlist[x], a+1);
          SetLength(jobArray[jobCount].j_proc, c+1);
          jobArray[jobCount].j_proc[c] := StrToInt((Copy(Bufferlist[x], a+1, b-a-1))); // Kopiere Prozesszeit in Array
          Inc(c); // Arrayzähler um eins erhöhen
        end; // if
        Inc(x);
      end; // while

      Inc(jobCount); // Jobanzahl um eins erhöhen
      SetLength(jobArray, jobCount-1);
    end; // if
    Inc(i);
  end; // while

Für Codeverbesserungen bin ich natürlich immer offen, aber zumindest läuft es so


Danke nochmals
Franz

Edit(13.02. 14:42) - Das Einlesen der Prozesszeit ins Array ist noch nicht korrekt. Ich werde die obige Funktion später nochmal editieren.
Franz
  Mit Zitat antworten Zitat