Einzelnen Beitrag anzeigen

BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#4

AW: Warum funktioniert das nicht? Suchen in einer Datei...

  Alt 17. Jul 2013, 18:54
Ich habe das nun mal so versucht aber komischerweise kann man nur die ersten 4 byte anzeigen lassen.
Delphi-Quellcode:
var
Stream: TFileStream;
i: Integer;
bsize : int64;
begin
  Memo1.Clear;
  Stream := TFileStream.Create('1.tcj', fmOpenRead);
  bsize := stream.Size;
  SetLength(Buffer, bsize);
  Stream.Read(Buffer[0], SizeOf(Buffer));
  // Nur zum test
  memo1.Lines.Add(inttohex(buffer[0],2));
  memo1.Lines.Add(inttohex(buffer[1],2));
  memo1.Lines.Add(inttohex(buffer[2],2));
  memo1.Lines.Add(inttohex(buffer[3],2));
  memo1.Lines.Add(inttohex(buffer[4],2));
  memo1.Lines.Add(inttohex(buffer[5],2));
  memo1.Lines.Add(inttohex(buffer[6],2));
  memo1.Lines.Add(inttohex(buffer[7],2));
  memo1.Lines.Add(inttohex(buffer[8],2));
  memo1.Lines.Add(inttohex(buffer[9],2));
  memo1.Lines.Add(inttohex(buffer[10],2));
  memo1.Lines.Add(inttohex(buffer[11],2));

  for i := 0 to bsize do begin
    if (buffer[i]=$43) and (buffer[i+1]=$37) and (buffer[i]=$F2) then begin // diese Daten kommen definitiv vor in der Datei!!
      memo1.Lines.Add('--'); // dient nur als kontrolle ob was gefunden wurde
    end;
  end;
  label1.Caption := inttostr(i);
  Stream.Free;
end;
Das oben dient nur zum testen. Das Ergebnis:
02
0A
53
59
00
00
00
00
00
00
00
00
Es sind aber keine 00 sondern andere Werte in der Datei.
Mit der Ausgabe im Label habe ich getestet ob die gesamte Datei mit der schleife durchlaufen wird. das wird sie! Verstehe das nicht.

wäre echt nett wenn mir jemand weiter helfen könnte. Event. auch mit Code. Danke!!
  Mit Zitat antworten Zitat