![]() |
Re: XOR Verknüpfung, wie?
Zitat:
Aus der Hilfe: Zitat:
Aus der Hilfe: Zitat:
Klaus |
Re: XOR Verknüpfung, wie?
So wie du es jetzt vorschlägst hatte ich es auch gedacht.
Aber die Leerzeichen (0x20) und das <STX> (0x02) gehen ja auch zu Checksummen Berechnung ein. Funktioniert das dann auch? Die CS brauche ich in HEX. Das kann ich leider nicht ändern |
Re: XOR Verknüpfung, wie?
in dem Code vom Sharky werden die Leerzeiche auch mit XOR verknüpft, denn
sie werden ja nirgends ausgefiltert. Grüße Klaus |
Re: XOR Verknüpfung, wie?
OK. Mit den Leerzeichen das funktioniert. Ich brauch jetzt nur noch das <STX> mit in die Berechnung einfließen zu lassen.
Schaut mal unter ![]() da steht bei STX : STX^B Kann ich das so einfach reinschreiben? oder kann ich auch "ord(<STX>)" nehmen. Geht das überhaupt? |
Re: XOR Verknüpfung, wie?
Hier der angepasste Code vom alzaimar
wenn Du STX als Startwert nimmst, wird STX auch in der Checksummer auftauchen. Grüße Klaus
Delphi-Quellcode:
Function CheckSum (Const aString : String) : String;
Var i : Integer; r :Byte; Begin If Length (aString)=0 Then r := 0 Else Begin r := 2; //STX ^B For i:=1 To Length (aString) Do r := r xor Ord (aString[i]); End; Result := IntToHex (r,2); End; |
Re: XOR Verknüpfung, wie?
Es funktioniert.
Vielen, vielen Dank an alle, die mir geholfen haben. Ich ziehe den Hut vor Euch!!!! |
Re: XOR Verknüpfung, wie?
Zitat:
einen kleinen Tipp habe ich noch. Versuche solche Funktionen ersteinmal allgemein zu halten und dann in einer zweiten Funktion die besonderen Randbedingungen vorzugeben. Dadurch ereichst Du eine höhere Wiederverwendbarkeit deines Codes: Zum Beispiel:
Delphi-Quellcode:
function CheckSumFromString(const aString: String): Integer; // Allgemeine Checksummenbildung über einen String
var i: Integer; r: Integer; begin if Length(aString) = 0 then begin r := 0; end else begin r := Ord(aString[1]); for i := 2 to Length(aString) do begin r := r xor Ord(aString[i]); end; end; Result := r; end; function CalcMyCheckSum(const aString: String): String; //Mit dem Randbedingungen const stx = #2; praefix = 'OWE 509 '; begin Result := IntToHex(CheckSumFromString(stx + praefix + aString), 2); end; procedure TForm1.Button1Click(Sender: TObject); var blubb: String; begin blubb := CalcMyCheckSum('12346579'); ShowMessage(blubb); end; |
Re: XOR Verknüpfung, wie?
Zu früh gefreut.
Das Programm welches in das Textfile, welches ich auslesen will, sperrt anscheinend diese Datei. Klappt das wenn ich das mit diesem fmOpenRead löse?? Ich hab keine Ahnung, wie das geht. Zur Zeit mache ich das so
Delphi-Quellcode:
Danke!
function TForm1.GetString():String;
var F1: TextFile; Text: String; begin try AssignFile(F1, sText1); Reset(F1); while not Eof(F1) do begin Read(F1, Text); end; CloseFile(F1); result := Text; except ShowMessage('Fehler beim auslesen der Textdatei'); end; end; |
Re: XOR Verknüpfung, wie?
uups hab auf etwas anderes geantwortet.
Zitat:
|
Re: XOR Verknüpfung, wie?
.. das hängt wohl davon ab in welchem Modi das andere Programm die Datei geöffnet hat.
Wenn die andere Datei geöffnet ist, kannst Du aber immer noch ein Kopie davon erstellen und aus dieser lesen. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz