Hallo,
ich hab folgenden Code den ich gern umbauen möchte.
Es geht darum:
Man kann in einem Memo Feld Dateinamen eingeben.
Jeder Dateiname hat eine neue Zeile.
Er soll nach jedem Dateinamen in der Datei suchen wobei er zwischen jedem Buchstaben
ein "00h" Wert einfügen muss.
Solte er den Wert gefunden haben muss er 17 Bytes hinter des begins vom Dateinamen zurück
springen. Das Problem ist das jeder Dateinamen verschieden groß ist.
Wie könnte man das lösen?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87:
| begin {$I-} AssignFile(f, Form1.Edit1.Text); Reset(f,1); lPos := 0; if (IOResult = 0) then begin repeat
lPos := lPos + 128;
BlockRead(f,u,8,iRead); if (iRead = 8) then begin if(lstrcmp(u,PChar(dvdoption.Memo1.Lines[0])) = 0) then begin secerror := '1';
Seek(f, lPos - length(dvdoption.Memo1.Lines[0]) - length(dvdoption.Memo1.Lines[0]) - 22); fillchar(u,sizeof(u),$05); BlockWrite(f,u,1,iWrite); ffound := '1';
end; end; until ffound = '1'; CloseFile(f); end; {$S+} end; |
Moderiert von
raziel: Delphi-Tags hinzugefügt