AGB  ·  Datenschutz  ·  Impressum  







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

stringreplace aber wie weiter?

Ein Thema von Headi · begonnen am 3. Mär 2006 · letzter Beitrag vom 6. Mär 2006
Antwort Antwort
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#1

stringreplace aber wie weiter?

  Alt 3. Mär 2006, 18:00
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:
  • auserhalb des programmes sind die Style Dateien
  • in denen werde ich platzhalter einsetzen z.B. {Name} oder {Adresse}
  • diese dateien lade ich und ersetze dann die Platzhalter mit stringreplace durch die vom Benutzer eingegebenen Daten

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 (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


so vielen dank schonmal

schönen Abend noch und ein schönes Weekend !!!

greez Headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#2

Re: stringreplace aber wie weiter?

  Alt 3. Mär 2006, 19:01
Wie wäre es wenn du dir so Tag-artig Bereiche definierst und die dann je nach belieben anzeigst.
z.B.:
Code:
{start:kind}
...{Alter}...
...{Schule}...
...{etc.}...
{ende:kind}
Wenn du dann den Start eines Bereichs gefunden hast suchst du nach dem Ende und kannst den gesamten Bereich z.B. ausblenden.
Jan
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#3

Re: stringreplace aber wie weiter?

  Alt 3. Mär 2006, 22:54
Zitat von Mr_G:
Wie wäre es wenn du dir so Tag-artig Bereiche definierst und die dann je nach belieben anzeigst.
z.B.:
Code:
{start:kind}
...{Alter}...
...{Schule}...
...{etc.}...
{ende:kind}
Wenn du dann den Start eines Bereichs gefunden hast suchst du nach dem Ende und kannst den gesamten Bereich z.B. ausblenden.
Hi Mr_G,

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:
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;
kann man den irgendwie noch ein bisschen optimieren, vereinfachern und verkleinern?

vielen dank schonmal

mfg headi
Pascal
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#4

Re: stringreplace aber wie weiter?

  Alt 5. Mär 2006, 11:37
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:
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
Pascal
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#5

Re: stringreplace aber wie weiter?

  Alt 5. Mär 2006, 20:28
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
Willy Scheibel
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#6

Re: stringreplace aber wie weiter?

  Alt 5. Mär 2006, 20:36
Wenn Du Dir das ganze noch in eine Unit schmeisst (zb: MyStrUtils) ist es perfekt.

function StrReplace(st, s1, s2:String):String;
Otto
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#7

Re: stringreplace aber wie weiter?

  Alt 6. Mär 2006, 12:14
Achso wenn das so ist

Dann vielen dank!!
Ich werde das dann mal so lassen


Also nochmals vielen dank an alle die geholfen haben

und noch einen schönen Tag

greez Headi
Pascal
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:52 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