Hallo zusammen,
ich habe ein Problem. Und zwar möchte ich verschiedene Dateien anhand einer Md5Checksumme vergleichen. Wenn die Summen nicht übereinstimmen, sollen die Dateien ausgetauscht werden.
Diese Dateien werden vom Server über eine Get-Methode der Indy-Komponenten runtergeladen. So liegt meine neue Datei erstmal als string in meinem Programm vor.
Ich hatte mir überlegt diesen string in eine Stringlist zu konvertieren und diese dann mit selben Namen der vorherigen Datei zu speichern.
Das klappt auch soweit, das Problem an der ganzen Sache ist, dass die Stringlist mir am Ende der Datei noch eine zusätzliche leer-Zeile speichert.
Wenn ich jetzt nun hingehe und beim nächsten mal die Checksummen berechne, ist die Checksumme der neuen Datei immer noch anders, als die von dem Server, obwohl die Dateien eigentlich gleich sein sollten.
Ich habe auch die beiden Dateien mit dem TotalCommander nach Inhalt vergleichen lassen und der einzige Unterschied ist wirklich nur die eine Leerzeile am Ende der neuen Datei.
Ich hatte mir weiterhin überlegt die Funktionen FileCreate und FileWrite zu benutzten. Aber das klappt auch nicht, weil die Funktionen in die Datei irgendwelche komischen Zeilen speichert, nur nicht den richtigen Inhalt. Aber vielleicht mache ich ja auch was falsch, also hier mal der Code:
Quelltext
1: 2: 3: 4: 5: 6:
| var handle: Integer; begin handle := FileCreate('IrgendeineDatei.txt'); FileWrite(handle, dateiInhalt, Length(dateiInhalt)); end; |
'dateiInhalt' ist mein string, den ich per Get vom Server geholt habe und an diese Funktion übergebe.
Ist es irgendwie möglich das letzte '#$a#$d'-Zeichen aus der Stringliste zu entfernen? Oder gibt es eine andere Möglichkeit meine neue Datei zu speichern?
Ich hoffe Ihr habt ein paar Tips für mich
Danke schonmal im Voraus
Grüße Moonlight