![]() |
Ausfüllen von Lücken in einem langen Text?
Hi Leute,
Ich habe ein Programm, bei dem ich mehrere Edit-Felder habe. Wenn ich jetzt auf Save drücke, sollen die Eingaben gespeichert werden. Jedoch steht da dann z.B.: Name:___User1____ Alter:____18_____ Und bei der Ausgabe soll stehen: User1 ist 18 Jahre alt! Danke schonmal! |
AW: Formular
Und was genau geht jetzt nicht, bzw. was genau hast du für ein Problem? :)
|
AW: Formular
Bitte gebe deinem ersten Beitrag einen aussagekräftigen Titel. Und mit Formular hat dein Problem wenig zu tun, wohl eher mit dem Abspeichern von Edits.
|
AW: Formular
Sorry, mir ist halt nichts besseres eingefallen.
Also ich möchte gern wissen, wie ich das machen soll. Wie kann ich einen vorgeschrieben (Lücken-)Text mit den Edits zusammen speichern? Mit dem Speichern habe ich kein Problem. Also ich stelle mir das so vor: var i : irgendwas; i:=('Blabla'+Edit1.Text+'.'); Jedoch ist mein Text viel zu lang... Sagen wir der Text hat so um die 100-150 Zeilen. Ich habe in meiner Form1 ca. 25 (Labeled-)Edits. Fast jedes Feld braucht eine eigen Zeile in der fertigen Datei. Schon mal danke! |
AW: Formular
Zitat:
|
AW: Formular
Ubd dein Problem versthe ich auch noch nicht ganz.
|
AW: Formular
Geh' nochmal in Dich und versuche eine Beschreibung zu liefern was der Benutzer am Bildschirm sieht und was das Programm tun soll.
Du hast geschrieben "vorgeschrieben (Lücken-)Text"; willst du also so eine Art Textgenerator programmieren? :glaskugel: Wenn das die Textvorlage ist:
Code:
Dann könnte man z.B. alle Variablen zwischen den $-Zeichen durch jeweils ein Editfeld ersetzen.
Hallo $user$,
heute ist der $Datum$ und wir haben $Temp$ Aussentemperatur. Gruß $Absender$ Wie wäre das? |
AW: Formular
...
Ich glaube ich kann nicht richtig erklären. Also, dann werde ich mal privater :-D Ich habe einen Text. Der Text ist ca. 100-150 Zeilen lang. Das Programm soll die Infos(aus den Edit-Feldern und Comboboxen) auslesen und zum Text ergänzen. z.B. " Ein Mann Namens __________ geht nach Hause. Sein Haus liegt auf der _____-Straße. Das Haus hat die Nummer __. " Und das soll die ganze Zeit so weiter gehen. Die jeweiligen Lücken sollen dann durch Edits usw. ausgefüllt werden. Der Text soll im Programm mit drinn sein (d.h. es soll keine Datei geben, die z.b. unfertig.txt heißt). Ich habe das ganze mit t : string; versucht und dann den Text zu schreiben. Aber bei t:=('Ein Mann Namens '+Edit1.Text+'...') war das zu lang. Außerdem kamen im Lückentext " ' " vor, also. Und den Zeilenumbruch bekomme ich so auch nicht rein... JA TEXTGENERATOR IST RICHTIG, ALSO SO WAS IN DER ART! |
AW: Formular
Zitat:
Wie würde dass denn dann aussehen? Aber ich denke eher an so was wie oben beschrieben. Gibt es nicht so was wie var i : string; und dann i.line1:='...', i.line2:='...', ... usw? Um genau zu sein will ich ungefär so was machen: <html> <head> <title>Edit1.Text</title> </head> </html> Jedoch ist es wichtig, zu wissen, dass in diesem Code mehrere ' drin vorkommen, also wenn mann dann so was machen will: var i : string; i:='<title>'+Edit1+'</title>'; geht das nicht, weil z.B. der Code sowas hat: <title='das ist nur ein example, das gibts in echt nicht'> dan beendet Delphi den inhalt ab dem ersten ' bei dem HTML-Quellcode. Ich weiss, dass ich mich nicht richtig ausdrücken kann, sry. |
AW: Formular
Ich würde "Textmarken" im Text setzen, und diese dann durch die Werte ersetzen lassen.
Code:
...
Name: $Name$ ... |
AW: Formular
Zitat:
Aber: Wo soll ich den Text dann hinschreiben? Dazu muss ich sagen, dass ich erst seit 1 Monat mit Delphi arbeite. Könntest du mal ein Beispiel posten? |
AW: Formular
Schau Dir mal in der Hilfe "StringReplace" an, das sollte Dir weiter helfen...
|
AW: Formular
Sry,
bei mir kommt von windows ein error. Kannst du mir das mal erklaeren? Ich versteh das nicht. |
AW: Formular
Code schicken, Fehlermeldung schicken ...
|
AW: Formular
Ich ergänze:
Thread umbenennen... |
AW: Formular
wie benenne ich den thread um?
Mein Hilfe-Fenster sagt, dass windows keine infos finden konnte. Jedoch bin ich jetzt so weit, dass ich nur noch folgendes brauche: Wie mache ich innerhalb eines textes (z.B. edit1.text:='<?xml version='1.0'?>'), dass ich das so schreiben kann? Durch diese zeichen vor und nach dem 1.0 kommt eine fehler meldung! |
AW: Formular
Zitat:
|
AW: Formular
Delphi-Quellcode:
s := '<?xml version=''1.0''?>';
|
AW: Ausfüllen von Lücken in einem langen Text?
Lol,
Danke! Aber ich habe immer noch ein Problem. Wie kann ich jetzt meinen Text in meinen Quellcode (Delphi) miteinbauen, so dass die Textdatei nicht extern abgelesen werden muss? Der soll ja bis zum ende unsichtbar sein, und wenn man dann speichert, soll dieser mit in die txt-datei (bzw xml-datei). Ich habe keine ahnung wie ich das machen soll :?: :?: Es wäre sehr nett, wenn ihr ein beispiel posten könntet. Vllt. ist es, wenn ich euch sage, dass ich noch auf ein Gymnasium gehe und nicht auf eine Uni oder so, verständlicher, dass ich ab und zu so dumme fragen stelle xD |
AW: Ausfüllen von Lücken in einem langen Text?
Delphi-Quellcode:
var
Form1: TForm1; Const C_TEMPLATE='Mein banz langer Text mit $Variablen' +'geht hier weiter' +'kann auch gaaaanz viele Zeilen haben' +#13#10'hier wäre jetzt eine neue Zeile' +'bzw: wg. HTML <br>hier eine neue Zeile' +'und den kann ich für StringReplace verwenden'; implementation |
AW: Ausfüllen von Lücken in einem langen Text?
Danke!
Genau das habe ich gesucht! mfG |
AW: Formular
Delphi-Quellcode:
Und um die Verwirrung komplett zu machen, werfe ich mal einen Befehl in die Runde:
MeinText := 'Hallo $User$,' + sLineBreak
+ 'heute ist der $Datum$ und wir haben $Temp$° Aussentemperatur.' + sLineBreak + 'Gruß $Absender$'; S := MeinText; S := StringReplace(S, '$User$', Edit1.Text, []); ... S := StringReplace(S, '$Temp$', IntToStr(DieTemperatur), []); ... ![]()
Delphi-Quellcode:
Oder wie wäre es mit einem TValueListEditor, statt der vielen Edits?
MeinText := 'Hallo %s,' + sLineBreak
+ 'heute ist der %s und wir haben %d° Aussentemperatur.' + sLineBreak + 'Gruß %s'; S := Format(MeinText, [Edit1.Text, DateToStr(Now), DieTemperatur, Edit2.Text]);
Delphi-Quellcode:
s := DerText;
for i := 0 to ValueListEditor1.RowCount - 1 do s := StringReplace(s, '$' + ValueListEditor1.Cells[0, i] + '$', ValueListEditor1.Cells[1, i], [rfReplaceAll, rfIgnoreCase]); Memo1.Text := s; |
AW: Ausfüllen von Lücken in einem langen Text?
Bei mir werden die variablen im Text nicht geändert...
Zitat:
Der geht so begin showmessage(const); end; Jedoch kommt da nur mein Text mit ...&lol... und so, ohne die eingaben aus edit1.text. Wieso ist das so?? |
AW: Ausfüllen von Lücken in einem langen Text?
&test& ist ja auch etwas anderes als $test$.
|
AW: Ausfüllen von Lücken in einem langen Text?
Sorry, ich habe beides mit $$, trotzdem selber Fehler.
|
AW: Ausfüllen von Lücken in einem langen Text?
...dann muss es funktionieren.
Hast Du Unterschiede in Groß-/Kleinschreibung? |
AW: Ausfüllen von Lücken in einem langen Text?
Wenn der letze Parameter [] ist, dann mußt du auch noch auf die Groß- und Kleinschreibung achten.
Delphi-Quellcode:
S := StringReplace(...
showmessage(const);
Delphi-Quellcode:
ist auch nicht
S
Delphi-Quellcode:
, wobei ich mal vermute, daß du hier
const
Delphi-Quellcode:
meinst, aber das kommt auf's Selbe raus.
showmessage(conf);
|
AW: Ausfüllen von Lücken in einem langen Text?
Ist das schlimm wenn ich ein Labelededit1 benutze?
Also, ich schreib mal bisschen ab
Code:
var
s : string; const conf='MEIN TEXT STEHT HIER MIT EINER $lol$.' +'BLBLBLBLBLBLB'; implementation . . . procedure TForm1.Button1Click(Sender: TObject); begin s := conf; s:=StringReplace(S, '$lol$', labeledEdit1.Text, []); showmessage(conf); end; |
AW: Ausfüllen von Lücken in einem langen Text?
Du änderst etwas in S, lässt Dir aber CONF anzeigen...
|
AW: Ausfüllen von Lücken in einem langen Text?
Jo, das war's.
Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 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