| Autor |
Beitrag |
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 13.12.08 00:18
Du solltest dein Windows ordentlich einrichten...
Windows Explorer --> Extras --> Ordneroptionen --> Ansicht --> Erweiterungen bei bekannten Dateitypen ausblenden
Das solltest du deaktivieren, wie es jeder etwas erfahrene Benutzer tut, dann würdest du auch sehen, dass du keine Datei auto.rc sondern eine Datei auto.rc.txt erstellt hast.
Dann hast du c:\ mit in deine Batchdatei geschrieben, die Dateien werden aber ja wohl nicht alle unter c:\ direkt liegen, oder?
Auch sonst solltest du an der Stelle (anders als in einem Programm selbst) absolute fest geschriebene Ordner vermeiden.
Du solltest die Dateien lieber in ein Unterverzeichnis legen, wie ich es geschrieben hatte, sonst kann es mit der Resourceneinbindung Probleme geben. Grund: Die Projektversion (in den Projektoptionen) sucht Delphi in der ersten eingebundenen .res Datei, und wenn das dann die falsche ist, kannst du diese Optionen nicht mehr verändern.
So, dann im Code fehlt noch die Zeile zur Einbindung: jaenicke hat folgendes geschrieben : | Im Code dann Delphi-Quelltext |
Und deine Resource heißt nicht auto.res (das ist die Datei) sondern nur auto. Delphi-Quelltext 1:
| ResStream := TResourceStream.Create(hInstance, 'auto', 'TEXT'); |
Ich habe das mal korrigiert angehängt  . Mit Format geht das nicht, weil du viele % Zeichen verwendest, ich habe einfach mal %%%%EDIT1%%%% in den HTML-Quelltext geschrieben, dies wird im Beispiel durch den Inhalt von Edit1 ersetzt.
Dann noch zwei Tipps:
1. Bezeichne deine Komponenten ordentlich. Was Edit1, Edit2, Memo1, etc. ist kannst du dir nie auswendig merken und musst jedesmal nachschauen. Wenn du es zum Beispiel edtTitle nennst, dann weißt du vom Namen her, dass es das Editfeld für den Titel ist.
2. MS Word 2002 (?) ist kein geeigneter HTML-Editor. Der Quelltext, den es erzeugt, ist grauslich. Eine kostenlose Alternative ist dieser: www.nvu-composer.de/
Die Qualität des erzeugten Quelltextes kenne ich nicht so genau, aber besser ist er vermutlich auf jeden Fall.
Ich selbst nutze das nicht kostenlose MS Expression Web, aber der ist für deine Zwecke sicher überdimensioniert. Der erzeugte Code ist aber sehr gut.
Einloggen, um Attachments anzusehen!
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Sa 13.12.08 14:03
vielen dank so ist es jetzt perfekt.
hab auch selbst jetzt großteilmäßig verstanden.
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Mi 17.12.08 19:46
hab wiederrum ein kleines problem hab jetzt alles soweit und hab auch die res aktualisiert aber es wird nur memo3.text geändert der rest bleibt bei %%%%Edit1.text%%%%
kann mir jemand sagen wieso ?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| var ResStream: TResourceStream; StringStream: TStringStream; begin
ResStream := TResourceStream.Create(hInstance, 'auto', 'TEXT'); StringStream := TStringStream.Create(''); StringStream.CopyFrom(ResStream, ResStream.Size); ResStream.Free;
Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT1%%%%', Edit1.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT2%%%%', Edit2.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT3%%%%', Edit3.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT4%%%%', Edit4.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT5%%%%', Edit5.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT6%%%%', Edit6.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT7%%%%', Edit7.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT8%%%%', Edit8.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT9%%%%', Edit9.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT10%%%%', Edit10.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT11%%%%', Edit11.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT12%%%%', Edit12.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT13%%%%', Edit13.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT14%%%%', Edit14.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT15%%%%', Edit15.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT16%%%%', Edit16.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT17%%%%', Edit17.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT18%%%%', Edit18.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT19%%%%', Edit19.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT20%%%%', Edit20.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT21%%%%', Edit21.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT22%%%%', Edit22.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT23%%%%', Memo1.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT24%%%%', Memo2.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT25%%%%', Memo3.Text, [rfReplaceAll]); StringStream.Free;
end; |
könnte es auch sein das es am htmlcode liegt ?
es wird immer nur die letzte änderung in diesem fall %%%%edit25%%%% geändert angezeigt
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 17.12.08 22:33
lukas-a hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var ResStream: TResourceStream; StringStream: TStringStream; begin
ResStream := TResourceStream.Create(hInstance, 'auto', 'TEXT'); StringStream := TStringStream.Create(''); StringStream.CopyFrom(ResStream, ResStream.Size); ResStream.Free;
Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT1%%%%', Edit1.Text, [rfReplaceAll]); Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT2%%%%', Edit2.Text, [rfReplaceAll]); | |
Edit1 bis Edit25, das tut weh...
Naja, deine Sache, zum Problem, schau dir mal an was du machst:
Du weist Memo4.Text den Inhalt von StringStream.DataString zu, wobei du %%%%EDIT1%%%% ersetzt. Und danach? Du weist Memo4.Text den Inhalt von StringStream.DataString zu, wobei du %%%%EDIT1%%%% ersetzt. usw.
Der Inhalt von StringStream.DataString ändert sich aber nicht... Was du willst ist doch in dem ersetzten Text weiter zu ersetzen. Der steht aber nicht in StringStream.DataString sondern in Memo4.Text nach der ersten Ersetzung... 
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mi 17.12.08 22:35
lads doch hier als anhang hoch...
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Do 18.12.08 00:14
sorry verstehs net ganz...
wie beheb ich den fehler?
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 18.12.08 00:19
lukas-a hat folgendes geschrieben : | | wie beheb ich den fehler? |
jaenicke hat folgendes geschrieben : | | Der Inhalt von StringStream.DataString ändert sich aber nicht... Was du willst ist doch in dem ersetzten Text weiter zu ersetzen. Der steht aber nicht in StringStream.DataString sondern in Memo4.Text nach der ersten Ersetzung... |
Delphi-Quelltext 1: 2: 3: 4:
| Memo4.Text := StringReplace(StringStream.DataString, '%%%%EDIT1%%%%', Edit1.Text, [rfReplaceAll]); Memo4.Text := StringReplace(Memo4.Text, '%%%%EDIT2%%%%', Edit2.Text, [rfReplaceAll]); |
|
|
ssb-blume
      
Beiträge: 375
Erhaltene Danke: 7
XP, W7, W8
Deutschland
|
Verfasst: Do 18.12.08 10:58
Hallo,
es gibt auch noch eine andere Möglichkeit: ein Template!
Schreib Deinen Text in HTML und die Stellen, die mit
Werten gefüllt werden sollen als z.B. <$ii>, wobei
ii eine Zahl ist, die dann auf ein Textfeld zeigt, aus
dem dann der Text entnommen wird und diesen Eintrag ersetzt.
Ist genau wie bei Serienbriefen etc.
_________________ Brain: an apparatus with which we think we think.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 18.12.08 13:53
Wo ist der Unterschied (außer in der Bezeichnung der Ersetzung)? 
|
|
|