Autor Beitrag
free4all
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 13:36 
Hi Leute also erstmal respekt zu diesem Forum, ich hab hier echt schon ne menge gefunden...

doch jetzt muss ich mal was fragen, ich hoffe ihr könnt mir helfen.

also...

Ich möchte gern mit hilfe eines Memo's eine Htmldatei erstellen.

Nur soll der Code nicht sichtbar sein, d.H. man soll den Text normal ins feld schreiben können, ein Edit-feld für den Titel haben und dadurch dann eine komplette Html datei bekommen.

zu den Fragen:

1. Wie kann ich den kompletten Inhalt eines Memofeldes auslesen und korriegieren (Zeilenumbrüche mit<br> umändern, ä mit &auml;...)
2. Die datei im Nachhinein als html datei speichern...

wäre wirklich nett wenn ihr mir helfen könntet sitz schon seit freitag und probiere :(

Danke im Vorraus...

greetz free4all
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: So 15.10.06 13:41 
Du gehst in einer for-Schleife alle Zeilen durch und mit StringReplace oder ReplaceString (:gruebel:) ersetzt du z.B. ä durch &auml;.

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
free4all Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 13:43 
wow... is das ein cooles Forum... :D

Danke das du so schnell geantwortet hast...

aber.. ich habe noch nie mit einer for schleife gearbeitet...

könntest du mir bitte ein beispiel posten??

TH free4all
DarkLord05
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 449

WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
BeitragVerfasst: So 15.10.06 13:44 
und speichern kannste mit:

ausblenden Delphi-Quelltext
1:
memo1.saveToFile("index.html");					

_________________
QBasic | Delphi | c++ | PHP | C# .NET | Java
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: So 15.10.06 13:46 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
//am besten lokal deklarieren
var i: integer;

for i := 0 to memo1.lines.count - 1 do
begin
  //tue hier, was auch immer du willst
end;

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: So 15.10.06 13:46 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var i: integer; //deine Zählervariable für die schleife

//Schleife beginnt bei 1 (1. Zeile im Memo und geht bis zur letzten des selbigen)
for i:= 1 to deinMemo.lines.count do
begin
 //mach irgendwas
end;


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: So 15.10.06 13:48 
user profile iconZeitGeist87 hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var i: integer; //deine Zählervariable für die schleife

//Schleife beginnt bei 1 (1. Zeile im Memo und geht bis zur letzten des selbigen)
for i:= 1 to deinMemo.lines.count do
begin
 //mach irgendwas
end;


LG
Stefan

Listeinindex überschreitet das Maximum! :lol:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var i: integer; //deine Zählervariable für die schleife

//Schleife beginnt bei 1 (1. Zeile im Memo und geht bis zur letzten des selbigen)
for i:= 1 to deinMemo.lines.count-1 do
begin
 //mach irgendwas
end;

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
free4all Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 13:49 
o.O Hallo? Boah dieses Forum ist ja der hammer!

Ok danke an euch... Ich probier's gleich aus...

1000 Dank... ich hab meine neue Startseite gefunden! *lach*

bis dann byebye free4all
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: So 15.10.06 13:52 
gar nicht wahr marco =)

ausblenden Delphi-Quelltext
1:
2:
3:
//bei der bearbeitung in der schleife einfach
memo.lines.strings[i-1];
//wenn zu drauf zugreifst^^


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
free4all Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 13:53 
Halt hab noch eine Frage...(sry)

Wie ist der befehl um ein ä durch &auml auszutauschen...
danke im vorraus;)

free4all
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 15.10.06 13:54 
ausblenden Delphi-Quelltext
1:
2:
3:
for i := 0 to count -1 do ;
//beginnt bei 0 
//endet bei demnach bei Länge -1


zu HTML [url]de.selfhtml.org/[/url] hier findest du die nötigen Informationen.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: So 15.10.06 13:55 
user profile iconMarco D.
Zitat:
Du gehst in einer for-Schleife alle Zeilen durch und mit StringReplace oder ReplaceString (:gruebel:) ersetzt du z.B. ä durch &auml;.


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 15.10.06 14:02 
Hier mal die Ersetzung aller (? ;-)) HTML-Sonderzeichen (woher der Code stammt, weiß ich nicht, ich hab den lediglich angepasst):
ausblenden volle Höhe Delphi-Quelltext
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:
procedure TForm37.btn1Click(Sender: TObject);

const
  HTMLSpecialChars: array[0..102of char = (
    '&''<''>'' ''©''®''™''«''»''¡''¿''À''à''Á''á',
    'Â''â''Ã''ã''Ä''ä''Å''å''Æ''æ''Ç''ç''Ð''ð''È',
    'è''É''é''Ê''ê''Ë''ë''Ì''ì''Í''í''Î''î''Ï''ï',
    'Ñ''ñ''Ò''ò''Ó''ó''Ô''ô''Õ''õ''Ö''ö''Ø''ø''Ù',
    'ù''Ú''ú''Û''û''Ü''ü''Ý''ý''ÿ''Þ''þ''ß''§''¶',
    'µ''|''±''­''¨''¸''ª''°''¬''–''¯''º''¹',
    '²''³''¼''½''¾''×''÷''¢''£''¤''¥''€''“''"''”');

  HTMLCharacterCodes: array[0..102of String[8] = (
    '&','>','<',' ''©''®''™''«',
    '»''¡''¿''À''à''Á',
    'á''Â''â''Ã''ã''Ä',
    'ä''Å''å''Æ''æ''Ç',
    'ç''Ð''ð''È''è''É',
    'é''Ê''ê''Ë''ë''Ì',
    'ì''Í''í''Î''î''Ï',
    'ï''Ñ''ñ''Ò''ò''Ó',
    'ó''Ô''ô''Õ''õ''Ö',
    'ö''Ø''ø''Ù''ù''Ú',
    'ú''Û''û''Ü''ü''Ý',
    'ý''ÿ''Þ''þ''ß''§''¶',
    'µ''¦''±''·''¨''¸''ª',
    'º''¬''­''¯''&def;''¹''²''³',
    '¼''½''¾''×''÷''¢',
    '£''¤''¥''€''“''"''”');

function ReplaceHTML(uNormalText: String): String;
var
  i: Integer;
begin
  for i := 0 to High(HTMLSpecialChars) do
    uNormalText := StringReplace(uNormalText, HTMLSpecialChars[i], HTMLCharacterCodes[i],
      [rfReplaceAll]);
  Result := uNormalText;
end;

begin
  memText.Text := ReplaceHTML(memText.Text);
end;

Du hast ja sicher nicht Lust, die alle aufzuschreiben...
free4all Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 14:05 
Soll das heissen das ich es in etwa so machen soll???

var i:integer;
begin

for i:= 1 to Memo1.lines.count-1 do
begin
Memo1.Lines[i]:=StringReplace(text, '1', '!', [rfReplaceAll);
end;
end;


THX free4all
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: So 15.10.06 14:06 
Ok, an memo1.text hatte ich nicht gedacht. :zustimm:

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 15.10.06 14:12 
user profile iconfree4all hat folgendes geschrieben:
Soll das heissen das ich es in etwa so machen soll???

var i:integer;
begin

for i:= 1 to Memo1.lines.count-1 do
begin
Memo1.Lines[i]:=StringReplace(text, '1', '!', [rfReplaceAll);
end;
end;


THX free4all

Ja, nur dass du statt "StringReplace(text, ..." "StringReplace(Memo1.Lines[i], ..." schreiben müsstest und statt bei 1 bei 0 anfange musst. Die erste Zeile ist Zeile 0, deshalb auch das Count - 1, denn die letzte Zeile ist nicht Count sondern Count - 1. Aber ich habe ja schon nen kompletten Source für die Ersetzung aller oder zumindest vieler Sonderzeichen gepostet.
Denn du musst nicht zeilenweise durch den Text gehen, du kannst einfach mit Memo1.Text auf den gesamten Text auf einmal zugreifen.

Noch was: Formatiere bitte Quelltext auch als solchen. Klicke dazu über dem Eingabefeld auf Bereiche. Dann vor der Eingabe des Quelltextes auf das Plus und danach nochmal oder drücke voher und nachher Alt + R.
free4all Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 14:19 
Also echt 1000 dank an euch....

Ich hätte da nurnoch eine Frage...

da ja in Html alle Zeilenumbrüche eingegeben werden (<br>, <p>) wollte ich fragen ob ihr wisst wie ich das umsetzten kann...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 15.10.06 14:26 
Du nimmst den Befehl zum Ersetzen von Strings und ersetzt den Zeilenumbruch in Memo1.Text durch <br>. Jetzt musst du nur noch wissen, wie der Zeilenumbruch in Delphi aussieht, ich weiß:
#13#10
Erklärung: Zeilenumbruch und Zeilenvorschub sind zwei Steuerzeichen, nämlich Zeichen 13 und Zeichen 10. Die musst du also nur ersetzen. #13#10 musst du nicht in Anführungszeichen setzen wie '<br>'.
free4all Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 15.10.06 14:44 
Gut dann danke ich euch erstmal für den schnellen Support an einem Sonntag-nachmittag...

Ich bin immernoch überweältigt von der schnellen hilfe...

Man sieht sich definitiv wieder ;)

byebye free4all