![]() |
stringreplace aber wie weiter?
Hallo Leute,
Ich habe folgendes Problem, Ich habe ein Programm, in dem es Felder hat für angaben. Wenn ich jetzt auf OK klicke dann kommt ein neues Fenster und dort steht dann ein BBCode um die Daten z.B. in ein Forum wie hier einzufügen. Jetzt möchte ich aber für die Ausgabe verschiedene Styles haben. Ich würde das jetzt so machen:
das wäre dann genau so wie ich mir das vorgestellt habe. Und das funktioniert ja auch, aber ich habe eine Gruppe an Feldern die spezifisch für eine Option angepasst werden können. Also so: Normale Daten, wie Name, Vorname, Strasse... //bleiben immer Spezifische Daten das heisst wenn der Benutzer im Programm auswählt das er 10 jahre alt ist, kommen z.B. (Schule, Lehrer/in, Noten... oder was auch immer) Wählt der Benutzer allerdings 30 Jahre, sollte dann auch in der Ausgabe z.B. (Beruf, Lohn, Arbeitsort...) kommen. Nur wie stelle ich das jetzt ein, das genau ein block Spezifisch immer ändert? Das Problem ist ja, dass das alles in dieser Style datei stehen muss. Ich habe auch schon eine Version gemacht, in der wird der Style vom Programm aus generiert, das heisst dann auch das der Benutzer keine eigenen Styles machen kann, weil ich das sonst immer zuerst in's Programm einfügen hätte müssen :lol: (komischer satz) Naja viel text und nicht viel dahinter... Jetzt könnt ihr mir vielleicht helfen, oder mir gleich eine ganz neue Methode vorschlagen? bitte bitte bitte bitte :thumb: :thumb: so vielen dank schonmal schönen Abend noch und ein schönes Weekend !!! greez Headi |
Re: stringreplace aber wie weiter?
Wie wäre es wenn du dir so Tag-artig Bereiche definierst und die dann je nach belieben anzeigst.
z.B.:
Code:
Wenn du dann den Start eines Bereichs gefunden hast suchst du nach dem Ende und kannst den gesamten Bereich z.B. ausblenden.
{start:kind}
...{Alter}... ...{Schule}... ...{etc.}... {ende:kind} |
Re: stringreplace aber wie weiter?
Zitat:
vielen dank erstmal!! Nicht schlecht die idee. Also ich habe mir mal diesen Code hier gebastelt, nur irgendwie ist der ein bisschen umständlich. Das müsste ich dann ja für jeden block machen... so hier mal mein code:
Delphi-Quellcode:
kann man den irgendwie noch ein bisschen optimieren, vereinfachern und verkleinern? :lol:
procedure TForm1.Button1Click(Sender: TObject);
begin If ComboBox1.Itemindex = 0 then begin with RichEdit1 do while FindText('{point}', 0, Length(RichEdit1.Text), [])<> -1 do begin SelStart := FindText('{point}', 0, Length(RichEdit1.Text), []); SelLength := FindText('{/point}', 0, Length(RichEdit1.Text), [])+8-Selstart; SelText := Copy(RichEdit1.Text,SelStart+8,SelLength-15); end; end else begin with RichEdit1 do while FindText('{point}', 0, Length(RichEdit1.Text), [])<> -1 do begin SelStart := FindText('{point}', 0, Length(RichEdit1.Text), []); SelLength := FindText('{/point}', 0, Length(RichEdit1.Text), [])+8-Selstart; SelText := Copy(RichEdit1.Text,SelStart+8,0); end; end; end; vielen dank schonmal mfg headi |
Re: stringreplace aber wie weiter?
Hey leute
Kann wirklich keiner helfen? Irgendwie muss man den code doch noch einfacher hinkriegen oder? also ich meine ich habe ja ca. 5 verschiedene spezifische kategorien, muss ich jetzt für jede kategorie diesen langen code benutzen?? Hier nochmals der Code:
Delphi-Quellcode:
vielen dank schonmal
procedure TForm1.Button1Click(Sender: TObject);
begin If ComboBox1.Itemindex = 0 then begin with RichEdit1 do while FindText('{point}', 0, Length(RichEdit1.Text), [])<> -1 do begin SelStart := FindText('{point}', 0, Length(RichEdit1.Text), []); SelLength := FindText('{/point}', 0, Length(RichEdit1.Text), [])+8-Selstart; SelText := Copy(RichEdit1.Text,SelStart+8,SelLength-15); end; end else begin with RichEdit1 do while FindText('{point}', 0, Length(RichEdit1.Text), [])<> -1 do begin SelStart := FindText('{point}', 0, Length(RichEdit1.Text), []); SelLength := FindText('{/point}', 0, Length(RichEdit1.Text), [])+8-Selstart; SelText := Copy(RichEdit1.Text,SelStart+8,0); end; end; end; mfg headi |
Re: stringreplace aber wie weiter?
Hi Headi!
Also ich würde sagen dass dieser Code nicht wirklich umständlich ist. Ich benutze zwar nicht FindText() sonder Pos(), aber das dürfte nix an der Länge ändern. Also ich finde den Code von dir völlig in Ordnung. Hier noch mal mein Code, den ich immer zum Ersetzen verwende:
Delphi-Quellcode:
position := Pos(suchtext, text);
if (position<length(text)) AND (position>0) then begin Delete(text, position, length(suchtext)); Insert(ersatztext, text, position); end; Mfg Flare |
Re: stringreplace aber wie weiter?
Wenn Du Dir das ganze noch in eine Unit schmeisst (zb: MyStrUtils) ist es perfekt.
Delphi-Quellcode:
:)
function StrReplace(st, s1, s2:String):String;
|
Re: stringreplace aber wie weiter?
Achso wenn das so ist :mrgreen:
Dann vielen dank!! Ich werde das dann mal so lassen :thumb: Also nochmals vielen dank an alle die geholfen haben und noch einen schönen Tag greez Headi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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