Avatar billede weis Nybegynder
06. maj 2003 - 15:08 Der er 12 kommentarer og
1 løsning

Erstat bogstav med noget andet

Hej

Er der nogen der kender et script der gør at man kan skrive en tekst i et memofelt og så klikke på en kanp og så bliver alle bogstaverne til noget andet. fx. så bliver a til 7 - eller - g til 2.
Hvis det er muligt at lave sådan at et bogstav kan blive til flere tegn så vil det være godt.

Koden må også gerne virke omvendt så man kan ændre den kode man har lavet til "rigtige" ord igen.

Koden skal være delt så den ene er på en form og den anden på en anden form...!
Avatar billede hermandsen Juniormester
06. maj 2003 - 15:13 #1
StringReplace
Avatar billede hermandsen Juniormester
06. maj 2003 - 15:16 #2
Memo1.Text := StringReplace(Memo1.Text, 'hest', 'pony', [rfReplaceAll, rfIgnoreCase]);

Erstatter alle steder der står "hest", "HEST", "HeSt", "hEsT" (osv.) med "pony".

//hermandsen
Avatar billede weis Nybegynder
06. maj 2003 - 15:18 #3
Og nå det så er alle bogstaver i alfabetet og tal
Avatar billede hermandsen Juniormester
06. maj 2003 - 15:22 #4
StringReplace(Memo1.Text, 'abcdefghijklmnopqrstuvwxyzæøå', '0123456789', [rfReplaceAll, rfIgnoreCase]);

Hvad er problemet!? :)
Avatar billede weis Nybegynder
06. maj 2003 - 15:27 #5
Problemet er at det ikke er alle bogstaver på en gang. meningen er at når man har skrevet en tekst så bliver alle a'er erstattet med e og alle b'er med a så der kommer en helt ny tekst men en der ikke giver mening.
Og det skulle også helst være muligt at ændre et bogstav til flere tegn...!
Avatar billede hermandsen Juniormester
06. maj 2003 - 15:30 #6
Det er det da også...
Funktionen ændrer ikke hver eneste bogstav i strengen, men hvis den finder en hel linje med f.eks. ordet "hest", så erstatter den hele det ord med "pony" som beskrevet tidligere...

Du ville erstatte "a" med "e"...

StringReplace(Memo1.Text, 'a', 'e', [rfReplaceAll]);

Nu erstatter den ikke "A"'erne fordi der rfIgnoreCase ikke er inkluderet under flags...
Avatar billede weis Nybegynder
06. maj 2003 - 15:41 #7
Okay prøver at forklare det en gang til:

Jeg har 2 memo’er og en knap. I memo1 skriver man en tekst og så klikker man på knappen og så kommer den nye tekst i memo2.

Det der sker med teksten er at: alle a’er bliver udskiftet med 101- og alle b’er bliver udskiftet med 110- osv. Så alle bogstaver i alfabetet bliver udskiftet (også tal).

Så skal der være en anden form med 2 andre memoer. Her skal man kunne gøre det sammen men bare omvendt, så alle steder der så står 101- bliver til a’er og alle steder der står 110- bliver til b’er osv.

Er det til at forstå???
Avatar billede snolle Nybegynder
06. maj 2003 - 15:47 #8
tjek på w3schools de plejer at have nogle ok eksempler http://www.w3schools.com/dhtml/dhtml_examples.asp
Avatar billede hermandsen Juniormester
06. maj 2003 - 15:47 #9
Jaaah, jeg tror bare ikke det er mig der har svært ved at forstå tingene her...

Lad os sige at du skriver noget i Memo1, og så skal vi erstatte "a" med "101-" og "b" med "110-" og så smide resultatet ind i Memo2.

Memo2.Text := StringReplace(Memo1.Text, 'a', '101-', [rfReplaceAll]);
Memo2.Text := StringReplace(Memo2.Text, 'b', '110-', [rfReplaceAll]);

Så hopper vi over på din anden form og skal have tingene tilbage.. Her kalder vi dem lige Memo3 og Memo4 så der ikke opstår alt for meget forvirring...

Memo4.Text := StringReplace(Memo3.Text, '101-', 'a', [rfReplaceAll]);
Memo3.Text := StringReplace(Memo3.Text, '110-', 'b', [rfReplaceAll]);

Hjalp det??
Avatar billede hermandsen Juniormester
06. maj 2003 - 15:48 #10
>>snolle
Du er her: Eksperten : Programmering : Delphi : Erstat bogstav med noget andet ;)

Delphi!!
Avatar billede weis Nybegynder
06. maj 2003 - 16:02 #11
>>hermandsen

Hvis jeg bruger den kode er det kun den nederste linje der bliver godtaget så alle a'er bliver erstattet med a'er men b'er bliver erstattet med 10-
Avatar billede snolle Nybegynder
06. maj 2003 - 16:02 #12
hehe forkert indlæg :P
Avatar billede hermandsen Juniormester
06. maj 2003 - 16:27 #13
var
  S: String;
begin
  S := Memo1.Text;
  S := StringReplace(S, 'a', '101-', [rfReplaceAll]);
  S := StringReplace(S, 'b', '110-', [rfReplaceAll]);
  Memo2.Text := S;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester