Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#16

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 11:50

Es hat nun funktioniert.

Delphi-Quellcode:
var
 aFile, sSubStr: String;
 AnsiStr: AnsiString;
 ByteArray: TArray<Byte>;
begin
 sSubStr := 'DasHierMussGefundenWerden';

 aFile := 'C:\Users\<name>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\27932e73jddafda77b.customDestinations-ms';

 ByteArray := TFile.ReadAllBytes(aFile);
 try
  if Length(ByteArray) > 0 then
   begin
    SetString(AnsiStr, PAnsiChar(@ByteArray[0]), Length(ByteArray));

    if Pos(sSubStr, AnsiUpperCase(AnsiStr)) - 1 > 0 then
     // tue etwas, wenn sSubStr in aFile gefunden wurde
   end;
 finally
  SetLength(ByteArray, 0);
 end;
Das könnte man eventuell noch etwas optimieren:

Delphi-Quellcode:
uses
  System.IOUtils, System.StrUtils;
...
var
  aFile, sSubStr: String;
  ByteArray: TBytes;
  newPos: PAnsiChar;
begin
  sSubStr := 'DasHierMussGefundenWerden';

  aFile := 'C:\Users\<name>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\27932e73jddafda77b.customDestinations-ms';

  ByteArray := TFile.ReadAllBytes(aFile);
  if Length(ByteArray) > 0 then
  begin
    newPos := SearchBuf(PAnsiChar(@ByteArray[0]), Length(ByteArray), 0, 0, AnsiString(sSubStr), [soDown]);
    if newPos <> nil then begin
      // tue etwas, wenn sSubStr in aFile gefunden wurde
    end;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat