![]() |
Ladebalken der anzeigt wan procedure beendet ist
Ich würde gerne wiessen wie ich bestimmete zeichen in einem memo ersätze.
Ein Memo in dem ein text steht Ein Button Wen mann auf den Butten klickt soll der Text im memo verändert werden. z.B. a = 1 b = 2 c = 3 d = 4 vorher a b c d nacher 1 2 3 4 So was ähnliges ist doch StringReplace oder? aber damit hab ich es auch dur das ersetzen der variable nicht hinbekommen z.B.: memo1.text := StringReplace(memo1.text, 'a', '1', [rfReplaceAll]); |
Re: Zeichen in Memo ersetzen
Ich dencke hat sich erledigt. habs hinbekommen.
:wall: hätt ich mir den thead auch sparen können |
Re: Zeichen in Memo ersetzen
Hmmm... und was funktioniert da nicht? Sieht eigentlich ganz in Ordnung aus, der Code (evtl. noch rfIgnoreCase zu den Options hinzufügen).
|
Re: Zeichen in Memo ersetzen
vieleicht doch net.
wie kan ich in stringreplace variablen benutzen??
Delphi-Quellcode:
oder
formdialog.memo.text := StringReplace(formdialog.memo.text, 'a', formdialog.Edit1.text, [rfReplaceAll]);
Delphi-Quellcode:
so funkts net
formdialog.memo.text := StringReplace(formdialog.memo.text, 'a', key1, [rfReplaceAll]);
|
Re: Zeichen in Memo ersetzen
Gib doch mal eine gescheite Fehlermeldung. "Funkt net" hilft hier nicht weiter. Meckert der Compiler, oder tut es einfach nicht, was Du willst?
|
Re: Zeichen in Memo ersetzen
Zitat:
Nach dem klick auf den butten ersätzt er das a durch nichts also löscht den buchstaben sozusagen. ich hab in edit1 natürlich vorher was eingegeben. Datentyp is string |
Re: Zeichen in Memo ersetzen
Das kommt mir komisch vor. Sicher, dass Du das richtige Edit angegeben hast?
|
Re: Zeichen in Memo ersetzen
Zitat:
|
Re: Zeichen in Memo ersetzen
Bei mir funktioniert das, der Fehler muss woanders liegen.
|
Re: Zeichen in Memo ersetzen
gib doch mal kurz vor oder nach der Zeile mal ein showmessage(formdialog.Edit1.text); aus, dann weißt du was drin steht.
|
Re: Zeichen in Memo ersetzen
Zitat:
etz habe ich folgendes problem (abgesehen davon das meine maus kaput gegangen ist und ich mit der Tastaturmaus weiterarbeite) ich würde gerne das der text in edit1 "geteilt" wird soll heisen Ich gebe ein abcd das wird dan normalerweise in der variable key1 gespeichert ich will aber das in variable Key1 ab und in variable Key1A cd gespeichert wird. hintergrung:
Delphi-Quellcode:
form1.memo1.text := StringReplace(form1.memo1.text, 'a', 'abc' + Key1 + 'defg' + Key2A, [rfReplaceAll]);
|
Re: Zeichen in Memo ersetzen
also im grunde genommen soll edit1 in zwei strings aufgeteilt werden.
|
Re: Zeichen in Memo ersetzen
funktionirt das nicht die ersten beiden zeichen/buchstaben in eine variable packen die beiden danach in eine und die danach dan auch in eine????
|
Re: Zeichen in Memo ersetzen
Es gibt auch eine Editier-Funktion die man nutzen kann wenn einem noch etwas einfällt!
Das was du machst nennt sich pushen und wird nicht so gern gesehen^^ Ich werde jetzt mal mit Absicht nicht antworten. |
Re: Zeichen in Memo ersetzen
Zitat:
ähm.. so ne denckanstos wehre ja auch gatz nett gewesen da wüsste ich wehnigstens nach was ich suchen soll |
Re: Zeichen in Memo ersetzen
ok, wollen wir mal nicht so sein ;)
Strings teilen kannst du zB mit Copy.
Delphi-Quellcode:
Kann sein das hier mal ein Buchstabe am Anfang/Ende verschluckt wird...ich hab das grad nicht getestet^^
Key1 := Copy(MeinText, 1, length(MeinText) div 2);
Key2 := Copy(MeinText, length(MeinText) div 2, length(MeinText) div 2); |
Re: Zeichen in Memo ersetzen
Zitat:
und was ist das meintext? wehte net wen du mir die einzelnen funktionen in dem text erkären könntest? |
Re: Zeichen in Memo ersetzen
Schau Dir mal die Copy-Funktion in der Hilfe an. Die erste Zeile speichert die erste Hälfte von MeinText in Key1, die zweite die zweite Hälfte (soll sie zumindest) in Key2.
|
Re: Zeichen in Memo ersetzen
Zitat:
das is irgendwie komisch geschrieben. hab mir auch schon das beispiel angegugt. Kann mir das wer auf "deutsch" erklären? :cyclops: |
Re: Zeichen in Memo ersetzen
Zitat:
Delphi-Quellcode:
Key1 := Copy(form1.edit1.text, 1, length(form1.edit1.text) div 2);
Key1a := Copy(form1.edit1.text, length(form1.edit1.text) div 2, length(form1.edit1.text) div 2); |
Re: Zeichen in Memo ersetzen
Ganz einfach: der erste Parameter gibt den "Start" an, der 2. die Länge.
Delphi-Quellcode:
var sText, Teil1, Teil2: string;
begin sText := 'Dies ist ein String'; Teil1 := Copy(sText,1,8); //ab dem ersten Zeichen 8 Zeichen kopieren Teil2 := Copy(sText,9,Length(sText)); //ab dem 9. Zeichen den ganzen Rest ShowMessage(Teil1); ShowMessage(Teil2); end; |
Re: Zeichen in Memo ersetzen
Normalerweise müsste er doch jetzt das a in memo1 durch toll ersätzen und beim klik auf den 2 buttzon das toll durch ein a was es aber nicht tut
Delphi-Quellcode:
ich binn am ende meines wissens angekommen
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; Memo1: TMemo; GroupBox2: TGroupBox; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; Label4: TLabel; Label5: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; PrintDialog1: TPrintDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} var key1, key1a, key1b, key2, key2a, key2b, key3, key3a, key3b: string; procedure _var_; begin key1:= form1.edit1.text; key2:= form1.edit2.text; key3:= form1.edit3.text; key1a := Copy(key1,1,4); //ab dem ersten Zeichen 8 Zeichen kopieren key1b := Copy(key1,5,Length(key1)); //ab dem 9. Zeichen den ganzen Rest end; procedure code; begin form1.memo1.text := StringReplace(form1.memo1.text, 'a','toll' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'A','toll' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'b','gfhu' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'B','gf#hu' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'c','"bJs' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'C','"b%Js' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'd','/§jT' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'D','/§?jT' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'e','&ast' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'E','&a{st' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'f','g@4[' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'F','g@%4[' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g','JHG³' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'G','JH²³' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'h','&%gd' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H','&%%gd' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'i','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'I','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'j','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'J','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'k','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'K','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'l','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'L','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'm','', [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'M','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'n','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'N','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'o','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'O','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'p','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'P','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'q','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'Q','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'r','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'R','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 's','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'S','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 't','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'T','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'u','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'U','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'v','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'V','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'w','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'W','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'x','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'X','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'y','(th{G' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'Y','(th!{G' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'z','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'Y','' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, ' ','H$%³t' , [rfReplaceAll]); end; procedure decode; begin form1.memo1.text := StringReplace(form1.memo1.text, 'toll', 'A', [rfReplaceAll]); end; procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then TRY Memo1.Lines.Loadfromfile(OpenDialog1.Filename); EXCEPT ShowMessage ('Fehler beim Laden der Datei!'); END; end; procedure TForm1.Button2Click(Sender: TObject); begin if SaveDialog1.Execute then TRY Memo1.Lines.SavetoFile(SaveDialog1.Filename); EXCEPT ShowMessage ('Fehler beim Speichern der Datei!'); END; end; procedure TForm1.Button3Click(Sender: TObject); begin _var_; begin if form1.RadioButton1.Checked then code; end; begin if form1.RadioButton2.Checked then begin; code; code; //ich weis das es zählschleifen gibt! :-) end; end; begin if form1.radiobutton3.checked then begin code; code; code; end; end; end; procedure TForm1.Button4Click(Sender: TObject); begin _var_; begin if form1.RadioButton1.Checked then decode; end; begin if form1.RadioButton2.Checked then begin; decode; decode; //ich weis das es zählschleifen gibt! :-) end; end; begin if form1.radiobutton3.checked then begin decode; decode; decode; end; end; end; end. |
Re: Zeichen in Memo ersetzen
Schau Dir Deine "code"-Funktion nochmal an: Du ersetzt 'a' durch 'toll', dann weiter unten jeden Buchstaben durch einen Leerstring, das kann ja nichts werden. Außerdem solltest Du aus den Prozeduren Methoden machen, so ist das recht unschön :)
|
Re: Zeichen in Memo ersetzen
Zitat:
is ja auch unlogisch gewesen erste ersätze ich a durch toll also toll und dan werden diese buchstaben ja auch noch ersätzt aber durch gar nichts weil ich da noch nichts reingeschrieben hatte.
Delphi-Quellcode:
so da das ersätzen manchmal schon sehr lange dauert würde ich gern wissen wie ich das hinbeckomme mit disem ladebalcken??
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; Memo1: TMemo; GroupBox2: TGroupBox; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; Label4: TLabel; Label5: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; PrintDialog1: TPrintDialog; ProgressBar1: TProgressBar; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} var key1, key1a, key1b, key2, key2a, key2b, key3, key3a, key3b: string; i:integer; procedure _var_; begin i:= 1; key1:= form1.edit1.text; key2:= form1.edit2.text; key3:= form1.edit3.text; key1a := Copy(key1,1,2); key1b := Copy(key1,3,4); key2a := Copy(key2,1,2); key2b := Copy(key2,3,4); key3a := Copy(key3,1,2); key3b := Copy(key3,3,4); end; procedure code; begin form1.memo1.text := StringReplace(form1.memo1.text, 'a','th%6' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'A','th&%6' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'b','g' + key3b + 'fhu' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'B','gf' + key2a + '#hu' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'c','"' + key1a + 'bJs' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'C','"b' + key2a +'%Js' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'd','/' + key2b +'§jT' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'D','/§' + key3a + '?jT' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'e','&ast' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'E','&a{st' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'f','g@4[' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'F','g' + key2b + '@%4[' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g','JHG³' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'G','JH²³' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'h','&' + key3b +'%gd' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H','&' + key1b + '%%gd' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'i','ß}' + key1a + '=47' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'I','ß' + key3a + '}=G47' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'j','&"' + key3a + '31' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'J','&"}31' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'k','&' + key1b + '%$2' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'K','&%' + key3a + ')$2' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'l','9v' + key1b + '45' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'L','9v' + key2a + '[45' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'm','oed' + key3b + '2' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'M','oe' + key1b + 'dß2' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'n','%' + key2a + '-93' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'N','%-;' + key1a + '93' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'o','jdS' + key2a +'t' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'O','jd' + key1b + '§St' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'p','%h'+ key2a +'te' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'P','%ht' + key2b + '!e' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'q','g' + key1a + 'h92' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'Q','g' + key3a + 'h³92' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'r','th' + key3b + 'vg' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'R','th?' + key3b + 'vg' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 's','}\' + key2a + '23' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'S','}\d' + key1b + '³23' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 't','x' + key2b + 'J%"' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'T','xJ' + key1a + '$%"' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'u','²[' + key3b + 'g]{' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'U','²[g' + key2a + '&]{' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'v','ueb' + key3a + 'A' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'V','u²' + key2a + 'ebA' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'w','%&5' + key3a + '&' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'W','%&' + key1b + '=5&' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'x','g' + key2b + 'htz' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'X','gh{' + key1b + 'tz' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'y','(th' + key3a + '{G' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'Y','(th!{' + key1a + 'G' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'z','³E' + key2b + '€w' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'Z','³E€@' + key1a + 'w' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, ' ','H$' + key1b + '%³t' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '1','H$' + key1b + '!' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '2','H$' + key1b + '"' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '3','H$' + key1b + '§' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '4','H$' + key1b + '$' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '5','H$' + key1b + '%' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '6','H$' + key1b + '&' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '7','H$' + key1b + '/' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '8','H$' + key1b + '(' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '9','H$' + key1b + ')' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '0','H$' + key1b + '=' , [rfReplaceAll]); end; procedure decode; begin form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '=','0' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + ')','9' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '(','8' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '/','7' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '&','6' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '%','5' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '$','4' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '§','3' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '"','2' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '!','1' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'H$' + key1b + '%³t',' ', [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '³E€@' + key1a + 'w','Z' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '³E' + key2b + '€w','z' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '(th!{' + key1a + 'G','Y' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '(th' + key3a + '{G','y' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'gh{' + key1b + 'tz','X' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key2b + 'htz','x' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '%&' + key1b + '=5&','W' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '%&5' + key3a + '&','w' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'u²' + key2a + 'ebA','V' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'ueb' + key3a + 'A','v' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '²[g' + key2a + '&]{','U' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '²[' + key3b + 'g]{','u' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'xJ' + key1a + '$%"','T' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'x' + key2b + 'J%"','t' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '}\d' + key1b + '³23','S' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '}\' + key2a + '23','s' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'th?' + key3b + 'vg','R' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'th' + key3b + 'vg','r' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key3a + 'h³92','Q' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key1a + 'h92','q' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '%ht' + key2b + '!e','P' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '%h' + key2a + 'te','p' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'jd' + key1b + '§St','O' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'jdS' + key2a +'t','o' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '%-;' + key1a + '93','N' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '%' + key2a + '-93','n' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'oe' + key1b + 'dß2','M' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'oed' + key3b + '2','m' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '9v' + key2a + '[45','L' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '9v' + key1b + '45','l' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&%' + key3a + ')$2','K' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&' + key1b + '%$2','k' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&"}31','J' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&"' + key3a + '31','j' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'ß' + key3a + '}=G47','I' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'ß}' + key1a + '=47','i' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&' + key1b + '%%gd','H' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&' + key3b +'%gd','h' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'JH²³','G' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'JHG³','g' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key2b + '@%4[','F' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g@4[','f' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&a{st','E' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '&ast','e' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '/§' + key3a + '?jT','D' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '/' + key2b +'§jT','d' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '"b' + key2a +'%Js','C' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, '"' + key1a + 'bJs','c' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'gf' + key2a + '#hu','B' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key3b + 'fhu','b' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'th&%6','A' , [rfReplaceAll]); form1.memo1.text := StringReplace(form1.memo1.text, 'th%6','a' , [rfReplaceAll]); end; procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then TRY Memo1.Lines.Loadfromfile(OpenDialog1.Filename); EXCEPT ShowMessage ('Fehler beim Laden der Datei!'); END; end; procedure TForm1.Button2Click(Sender: TObject); begin if SaveDialog1.Execute then TRY Memo1.Lines.SavetoFile(SaveDialog1.Filename); EXCEPT ShowMessage ('Fehler beim Speichern der Datei!'); END; end; procedure TForm1.Button3Click(Sender: TObject); begin _var_; begin if form1.RadioButton1.Checked then code; end; begin if form1.RadioButton2.Checked then begin; code; code; //ich weis das es zählschleifen gibt! :-) end; end; begin if form1.radiobutton3.checked then begin code; code; code; end; end; end; procedure TForm1.Button4Click(Sender: TObject); begin _var_; begin if form1.RadioButton1.Checked then decode; end; begin if form1.RadioButton2.Checked then begin; decode; decode; //ich weis das es zählschleifen gibt! :-) end; end; begin if form1.radiobutton3.checked then begin decode; decode; decode; end; end; end; end. PS: Ist mein programmtext jetzt richtig eingerückt? |
Re: Zeichen in Memo ersetzen
Die Einrückung ist in meinen Augen OK (bis auf _var_), und Du hast mich auch verstanden. Allerdings sind das immer noch einfache Prozeduren. Und globale Variablen sollte man auch nach Möglichkeit vermeiden.
|
Re: Zeichen in Memo ersetzen
Zitat:
so dan das mit den einfachen proceduren. ähm.. ich weis nicht wie man das zu ner funktion macht. etwa indem man procedure duch funktion ersätzte oder so. und was sind globale variablen weis ich auch net. und ich verstehe nicht gantz warum du schreibst Zitat:
ich weis zu viele fragen auf einmal. :mrgreen: noch was was hat ne funktion fürn vorteil gegenüber ner procedur? |
Re: Ladebalken der anzeigt wan procedure beendet ist
Eine Funktion gibt einen Wert zurück, was eine Prozedur nicht kann.
z.B.:
Delphi-Quellcode:
Das wäre ein Beispiel für eine einfache Funktion, die Zahl1 und Zahl2 addiert.
function Addiere(Zahl1, Zahl2: Integer): Integer;
begin Result := Zahl1 + Zahl2; end; Und noch eine Bitte: Deine Rechtschreibung. Es wird hier öfter im Forum angesprochen und ich finde, Du solltest Dich auch etwas daran halten. Vor allem scheint Deine J-Taste nicht zu funktionieren (etz), solltest Du vielleicht mal reparieren. Spaß bei Seite, lies, bevor Du postet noch mal Deinen Beitrag durch und entferne Deine vielen Rechtschreibfehler. |
Re: Ladebalken der anzeigt wan procedure beendet ist
Zitat:
ähm.. Wie soll ich das jetzt bei mir Anwenden? Ich denke das procedur volkommen ausreicht. und wie ist das mit dem Ladebalken jetzt? |
Re: Ladebalken der anzeigt wan procedure beendet ist
Hi,
die Funktion von mir hilft Dir gar nicht, es war nur ein Beispiel, um Dir zu zeigen, wie man eine Funktion deklariert. |
Re: Ladebalken der anzeigt wan procedure beendet ist
Zitat:
und wie ist das mit dem ladebalken? Er soll so lange laden biss alle Befehle in einer "procedure" ausgeführt sind. Nur ich weis net wie ich das machen soll. |
Re: Ladebalken der anzeigt wan procedure beendet ist
Hallo,
solange du deinen Code noch beschleunigen kannst, solltest du nicht an einen Ladebalken denken.
Delphi-Quellcode:
So hast du deine Prozedur zur Funktion umgebaut. Da jetzt nicht mehr 126 mal auf die Texteigenschaft des Memos zugegriffen wird, wird der Code sicher etwas schneller ausgeführt. Noch schneller wird der Code, wenn du nicht mehr mit StringReplace() arbeitest, da mit dieser Funktion jedesmal wieder der gesamte Text abgesucht wird. Wenn du nur einmal über deinen Text gehst, wird alles noch schneller.
function Encode(const s, key1a, ..., key3b: string): string;
var buf: string; begin buf := StringReplace(s, 'a','th%6' , [rfReplaceAll]); buf := StringReplace(buf, 'b','g' + key3b + 'fhu' , [rfReplaceAll]); // ... buf := StringReplace(buf, '9','H$' + key1b + ')' , [rfReplaceAll]); Result := StringReplace(buf, '0','H$' + key1b + '=' , [rfReplaceAll]); end;
Delphi-Quellcode:
Wenn du dann als nächsten Schritt noch die zu erwartende Größe des Ergebnisses berechnest, dann entfällt auch noch das aufwändige schrittweise Vergrößern von buf und alles wird noch einmal deutlich schneller.
function Encode(const s, key1a, ..., key3b: string): string;
var i: Integer; buf: string; begin buf := ''; for i := 1 to Length(s) do case s[i] of 'a': buf := buf + 'th%6'; 'A': buf := buf + 'g' + key3b + 'fhu'; // ... '9': buf := buf + 'H$' + key1b + ')'; '0': buf := buf + 'H$' + key1b + '='; else buf := buf + s[i]; end; Result := buf; end; Bevor du dann daran gehst einen Fortschrittsbalken anzuzeigen, musst du erstmal den zu erwartenden Zeitbedarf ausrechnen. Freundliche Grüße vom marabu |
Re: Ladebalken der anzeigt wan procedure beendet ist
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 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