AGB  ·  Datenschutz  ·  Impressum  







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

Buchstaben ersetzen

Ein Thema von Ricoo · begonnen am 27. Aug 2007 · letzter Beitrag vom 1. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#1

Buchstaben ersetzen

  Alt 27. Aug 2007, 21:00
Hallo!

Ich komme mal wieder nicht weiter. Ich möcht einen Text in Memo1 einlesen, alle A's durch B's ersetzen und dann in Memo2 ausgeben.
Nur funktioniert das Ganze nichso.

Kann mir Jemand helfen?

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var i, j:Integer;
    Datei:TextFile;
    Zeile: String;
    zeichen: char;

begin
  AssignFile(Datei, 'Liesmich.TXT');
  Reset(Datei);

  While not EOF(Datei) do Begin
    Readln(datei,Zeile);
    Memo1.Lines.Add(Zeile);
  end;
  closeFile(datei);

  for i:=0 to Memo1.Lines.Count do
    begin
      zeile:=Memo1.Lines[i];

      for j:= 0 to 10 do
        begin
         zeichen := zeile[j];

         if zeichen = 'bthen
          begin
            zeile[j] := 'a';

          end;

        end;

      Memo2.Lines.Add(Zeile);
    end;
end;
Das mit dem 0 to 10 in der zweiten For-Schleife is nur zu Test zwecken, wenns bei den ersten 10 klappt, muss es auch bei den nächsten 10 funktionieren.. xD

Danke schonmal!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 21:02
Versuch es mal mir ReplaceString()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 21:13
das einfachste:
Delphi-Quellcode:
Memo1.LoadFromFile('Liesmich.TXT');
Memo2.Lines.Text := StringReplace(Memo1.Lines.Text, 'a', 'b', [rfReplaceAll]);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#4

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 21:19
Danke Leute! So klappt das Einwand frei.. xD
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 21:34
Hallo Ricoo,

Zitat von Ricoo:
So klappt das Einwand frei..
...solange die Datei im aktuellen Arbeitsverzeichnis liegt - wo auch immer das zum Zeitpunkt des Aufrufs sein mag: klick

Gruß Hawkeye
  Mit Zitat antworten Zitat
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#6

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 21:48
Zitat von Hawkeye219:
Hallo Ricoo,

Zitat von Ricoo:
So klappt das Einwand frei..
...solange die Datei im aktuellen Arbeitsverzeichnis liegt - wo auch immer das zum Zeitpunkt des Aufrufs sein mag: klick

Gruß Hawkeye
Ja, hab das sowieso mit sonem OpenDialog gemacht aber danke. =)
  Mit Zitat antworten Zitat
Ricoo

Registriert seit: 10. Jul 2007
35 Beiträge
 
#7

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 22:27
In Delphi 2005 Personal hat das mit StringReplace super funktioniert.
Mein Problem ist jetzt aber, dass das ne Hausaugabe war und mein Lehrer nur Delphi 3 hat und sich
strikt weigert irgentwas Anderes zu benutzen. Jetzt wollt ich das halt alles nochmal in Delphi 3
schreiben aber da scheint es die StringReplace Funktion noch nicht zu geben. -.-

Hat jemand vielleicht noch einen anderen Vorschlag?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 22:40
Hi,

ist das hier was für dich StringReplace?
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 22:47
Zitat von Ricoo:
In Delphi 2005 Personal hat das mit StringReplace super funktioniert.
Mein Problem ist jetzt aber, dass das ne Hausaugabe war und mein Lehrer nur Delphi 3 hat und sich
strikt weigert irgentwas Anderes zu benutzen. Jetzt wollt ich das halt alles nochmal in Delphi 3
schreiben aber da scheint es die StringReplace Funktion noch nicht zu geben. -.-

Hat jemand vielleicht noch einen anderen Vorschlag?
Schade. Dann musst Du Deinen ursprünglichen Source-Code ein wenig anpassen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, j :Integer;
    Zeile : String;
begin
{
  AssignFile(Datei, 'Liesmich.TXT');
  Reset(Datei);

  While not EOF(Datei) do Begin
    Readln(datei,Zeile);
    Memo1.Lines.Add(Zeile);
  end;
  closeFile(datei);
}

  Memo1.Lines.LoadFromFile('Liesmich.TXT'); // Etwas einfacher :-)

  for i:=0 to (Memo1.Lines.Count-1) do // -1 nicht vergessen!
    begin
      zeile := Memo1.Lines[i];

      for j:= 1 to length(zeile) do // ist etwas allgemeiner gehalten, und: Bei "1" anfangen!
        begin
         if zeile[j] = 'bthen
            zeile[j] := 'a';
        end;

      Memo2.Lines.Add(Zeile);
    end;
end;
Mit Memo1.Lines.Text sparst Du noch ein paar Zeilen, wollte Deinen Source aber so wenig wie möglich verändern. Code ist ungetestet - viel Spaß damit!
BTW, bei Deiner Version werden Großbuchstaben "B" nicht berücksichtigt. Sollten mehrere Zeichen umgewandelt werden, dann würde ich Dir die CASE-Anweisung empfehlen. Spart bei vielen Zeichen eine Menge Code und Fehlermöglichkeiten

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: Buchstaben ersetzen

  Alt 27. Aug 2007, 23:22
normal läuft das doch so, oder...?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, j:Integer;
    Datei:TextFile;
    Zeile: String;
    zeichen: char;

begin
  AssignFile(Datei, 'Liesmich.TXT');
  Reset(Datei);
  While not EOF(Datei) do Begin
    Readln(datei,Zeile);
    for i := 0 to length(zeile) do
    begin
     if zeile[i] = 'athen zeile[i] := 'b';
  // ... und hier noch 'n paar abfragen oder cases....
    end;
    Memo1.Lines.Add(Zeile);
  end;
  closeFile(datei);
end;
das ging sogar (beinahe) unter tp, 3.0... , nur dass du da kein tMemo hast..
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:06 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