AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Leerzeichen in Unterstriche umwandeln

Ein Thema von Snow Dragon · begonnen am 5. Feb 2009 · letzter Beitrag vom 11. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Leerzeichen in Unterstriche umwandeln

  Alt 6. Feb 2009, 16:37
Hallo nahpets,

Zitat:
Leerzeilen könntest Du an zwei aufeinanderfolgende Zeilenumbrüchen (#13#10#13#10) erkennen, das müsste mit StringReplace eigentlich zu ersetzen sein.
Delphi-Quellcode: markieren
StringReplace(Zeichenfolge,#13#10#13#10,'****',[rfReplaceAll]);
Habe auch mel ein bißchen mit deinem Code gespielt. also ich bekomme es nicht hin ein Leerzeile aus einer Datei zu löschen. Das Problem ist, der Befehl von Dir wird zwar ausgeführt aber ohne Änderung.

Beim Debuggen, ändern sich meine Variablen nicht. Alle anderen StringReplaced Befehle werden ausgeführt und meine Variable ändert sich.

MFG

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Snow Dragon

Registriert seit: 5. Feb 2009
5 Beiträge
 
#12

Re: Leerzeichen in Unterstriche umwandeln

  Alt 9. Feb 2009, 08:05
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#13

Re: Leerzeichen in Unterstriche umwandeln

  Alt 9. Feb 2009, 08:36
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


Delphi-Quellcode:
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;
Buchstabe ... auf den Nullpunkt verschieben
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Snow Dragon

Registriert seit: 5. Feb 2009
5 Beiträge
 
#14

Re: Leerzeichen in Unterstriche umwandeln

  Alt 10. Feb 2009, 09:51
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#15

Re: Leerzeichen in Unterstriche umwandeln

  Alt 10. Feb 2009, 10:58
drum fragte ich ja nach dem letzen Code,
denn wenn ich ein
' '      : s1 := s1 + ' '; in das CASE reinmach, dann bleibt das Leerzeichen erhalten.

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
http://www.ivhp.de/files/caesar.htm
wenn das Selbe rauskommt, daß isses sozusagen richtig
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Snow Dragon

Registriert seit: 5. Feb 2009
5 Beiträge
 
#16

Re: Leerzeichen in Unterstriche umwandeln

  Alt 11. Feb 2009, 11:31
okay gut jetzt funktioniert alles, auch das verschlüsseln und die leerzeichen danke an alle die mir geholfen haben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz