![]() |
Re: Leerzeichen in Unterstriche umwandeln
Hallo nahpets,
Zitat:
Beim Debuggen, ändern sich meine Variablen nicht. Alle anderen StringReplaced Befehle werden ausgeführt und meine Variable ändert sich. MFG Jens |
Re: Leerzeichen in Unterstriche umwandeln
Hallo nochmal,
hab das ganze jetzt auch nochmal mit StringReplace() versucht, ging auchnicht. Genauso wie wenn ich in die Schliefe noch was einfüge kommt imemr ein zusammengeklatschter Text raus. Also aus "test test" wird 'TESTTEST'. Gibts vielleicht noch ne andere Möglichkeit? |
Re: Leerzeichen in Unterstriche umwandeln
Wie sieht denn dein Code nun aus?
Wäre ja nicht schlecht, wenn wir dennoch den Fehler finden und du dabei lernst/erfährst warum es nicht ging. Hast du beim StringReplace auch den Rückgabewert übernommen? Ist oftmals ein/DER Fehler, warum da nix passiert :stupid:
Delphi-Quellcode:
Buchstabe ... auf den Nullpunkt verschieben
VAR S: AnsiString;
I: Integer; B, Schl: Byte; BEGIN // ALLES in Großbuchstaben umwandeln S := AnsiUpperCase(edein.Text); // Umlaute ersetzen S := StringReplace(S, 'Ä', 'AE', [rfReplaceAll]); S := StringReplace(S, 'Ö', 'OE', [rfReplaceAll]); S := StringReplace(S, 'Ü', 'UE', [rfReplaceAll]); S := StringReplace(S, 'ß', 'SS', [rfReplaceAll]); // nicht erlaubte Zeichen rauslöschen FOR I := Length(S) DOWNTO 1 DO IF NOT (S[I] IN [' ', 'A'..'Z']) THEN Delete(S, I, 1); // Schlüssel holen Schl := StrToInt(lbein.Text); FOR I := 1 to Length(S) DO // das Leerzeichen wird nicht verarbeitet (war doch bei Cäsar so?) IF S[I] IN ['A'..'Z'] THEN BEGIN // bei Cäsar werden nur die Buchstaben in sich verschoben // Buchstabe in Zahl umwandeln und auf den Nullpunkt verschieben B := Ord(S[I]) - Ord('A'); // Schlüssel zurechnen und den Zahlenbereich anpassen B := (B + Schl) MOD 26; // Zahl wieder in den Buchstabenbereich verschieben und in ein Zeichen Wandeln S[I] := Chr(B + Ord('A')); END; edaus.Text := S; END; ist nur, damit sich leichter Rechnen läßt, da es sonst etwa so aussehen würde:
Delphi-Quellcode:
VAR B, Schl: Integer;
Schl := StrToInt(lbein.Text); IF S[I] IN ['A'..'Z'] THEN BEGIN // bei Cäsar werden nur die Buchstaben in sich verschoben // Buchstabe in Zahl umwandeln B := Ord(S[I]); // Schlüssel zurechnen und den Zahlenbereich anpassen B := B + Schl; WHILE B < Ord('A') DO A := A + 26; WHILE B > Ord('Z') DO A := A - 26; // Zahl wieder in den Buchstabenbereich verschieben und in ein Zeichen Wandeln S[I] := Chr(B); END; |
Re: Leerzeichen in Unterstriche umwandeln
snalso mit deiner prozedur klappt es jetzt^^ ich versteh zwar imemnoch nicht genau wieso er das bei mir nicht gemacht hatte, aber es geht, ist ja schonmal was. Der quellcode des programm steht am anfangsbeitrag hatte sich bis eben nicht viel geändert
|
Re: Leerzeichen in Unterstriche umwandeln
drum fragte ich ja nach dem letzen Code,
denn wenn ich ein
Delphi-Quellcode:
in das CASE reinmach, dann bleibt das Leerzeichen erhalten.
' ' : s1 := s1 + ' ';
nja, abgesehn, daß bei deiner Verschlüsselung die Berechnung nicht stimmte ... wie gesagt, du mußt auf den Wertebereich achten (also daß alles innerhalb der Buchstaben bleibt) und das Leerzeichen wird unverändert beibehalten. kannst ja gern das Ergebnis deiner Funktion hiermit vergleichen ![]() wenn das Selbe rauskommt, daß isses sozusagen richtig :stupid:
Delphi-Quellcode:
PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR s, s1, aus: String; sch, i, ASCII: Integer; BEGIN sch := StrToInt(lbein.text); s := edein.Text; s1 := ''; FOR i := 1 TO Length(s) DO CASE s[i] OF 'A'..'Z' : s1 := s1 + s[i]; 'a'..'z' : s1 := s1 + UpCase(s[i]); 'ß' : s1 := s1 + 'SS'; 'ä', 'Ä' : s1 := s1 + 'AE'; 'ö', 'Ö' : s1 := s1 + 'OE'; 'ü', 'Ü' : s1 := s1 + 'UE'; ' ' : s1 := s1 + ' '; END; aus := ''; FOR i := 1 to Length(s1) DO BEGIN IF s1[i] <> ' ' THEN BEGIN ASCII := Ord(s1[i]) + sch; //WHILE ASCII > Ord('Z') DO ASCII := ASCII - 26; WHILE ASCII > Ord('Z') DO ASCII := ASCII - (Ord('Z') - Ord('A') + 1); aus := aus + Chr(ASCII); END ELSE aus := aus + s1[i]; END; edaus.Text := aus; END; |
Re: Leerzeichen in Unterstriche umwandeln
okay gut jetzt funktioniert alles, auch das verschlüsseln und die leerzeichen :-D danke an alle die mir geholfen haben
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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 by Thomas Breitkreuz