Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi memo(oder ähnliches) als html umwandeln (https://www.delphipraxis.net/7014-memo-oder-aehnliches-als-html-umwandeln.html)

dragi 30. Jul 2003 09:01


memo(oder ähnliches) als html umwandeln
 
Hallo,

ich brauche mal wieder eure Hilfe. Ich muss ein kleines Programm schreiben, das den Inhalt eines Memo Feldes mit den Zeilenumbrüchen und anderen Formatierungen in eine html-Datei umwandelt. Wie kann ich die Formatierungen auslesen? Wenn ich das wüsste könnte ich ja eigentlich den Formatierungen das entsprechende html Tag anhängen. Also z.B. am ende einer Zeile dieses

, nur woher weiss Delphi wann das Ende einer Zeile in nem Memo ist?

Hoffe auf Antwort

dragi

Christian Seehase 30. Jul 2003 09:05

Re: memo(oder ähnliches) als html umwandeln
 
Moin Dragi,

Du kannst den Inhalt eines Memos doch zeilenweise verarbeiten (Eigenschaft Lines).

Delphi erkennt es an der Zeilenendekennung (#13#10), wobei beim Einlesen aus einer Datei auch #13 oder #10 genügt.

dragi 30. Jul 2003 09:43

Re: memo(oder ähnliches) als html umwandeln
 
Wie kann ich denn diese Kennungen sichtbar machen und wo finde ich eine Auflistung welche es alles gibt?

Christian Seehase 30. Jul 2003 10:32

Re: memo(oder ähnliches) als html umwandeln
 
Moin Dragi,

die Frage versteh' ich jetzt nicht.

dragi 30. Jul 2003 10:42

Re: memo(oder ähnliches) als html umwandeln
 
Stimmt, war blöd gestellt hat sich auch so schon erledigt weil mein gedankengang da fernab jeglicher realität war :D

Aber folgendes, ich möchte ein Memo1 auslesen und in Memo2 darstellen, dazu aber jeder Zeile ein

zuschreiben.
Memo1:

Hallo
das ist
ein Test

soll in memo2 so aussehen:
Hallo


das ist


ein Test



Habe es so probiert:
Delphi-Quellcode:
Memo2.Lines := Memo1.Lines + '

'
Aber dann sagt er mir das die Typen "string" und Tstring" inkompatibel sind?! Kann ich nichts einer bestehenden MemoZeile hinzufügen?

dragi

CalganX 30. Jul 2003 10:47

Re: memo(oder ähnliches) als html umwandeln
 
Hi,
doch kannst du.
TStrings ist im Grund nur ein dynamisches Array of String. Auf eine bestimmte Zeile kannst du zugreifen mit
Delphi-Quellcode:
Memo1.Lines[ ZeilenNummerMit0BeginntES ]
.

btw:

ist nicht ganz korrekt... ;)

Text</p> wäre ein Absatz. In deinem Fall wäre, wie im ersten Post von dir gesagt,
korrekt. JAI

Chris

Alexander 30. Jul 2003 13:28

Re: memo(oder ähnliches) als html umwandeln
 
Das ganze machst du dann mit einer Schleife, um alle Zeilen zu ändern

dragi 31. Jul 2003 06:49

Re: memo(oder ähnliches) als html umwandeln
 
Guten Morgen,

kann man den auch eine bestimmt Zeile herausfinden? Also zum Beispiel jede Zeile mit dem Inhalt '', also leer? So das ich die Nummer der Zeile bekomme und mit dieser dann weiterarbeiten kann?

THX
dragi

Alexander 31. Jul 2003 07:23

Re: memo(oder ähnliches) als html umwandeln
 
Wenn du alle Zeilen mit einer Schleife durchgehst, kannst du das ja so machen:
Delphi-Quellcode:
if (memo1.Lines[i] = '') then
 ShowMessage('Zeile '+IntToStr(i)+' ist leer! );
i ist in diesem FAlle, der Integer der Schleife

dragi 31. Jul 2003 07:53

Re: memo(oder ähnliches) als html umwandeln
 
Ich habe jetzt folgendes:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i,j: integer;
begin
  Memo2.Lines.clear;
  for i := 0 to Memo1.Lines.Count-1 do
    begin
     Memo2.Lines.Add(Memo1.Lines[i] + '
');
     If Memo1.Lines[i] = '' then
       j := i;
       Memo2.Lines[i] := Memo1.Lines[i] + '

</p>'
    end;
end;
er soll damit folgendes Machen. Wenn ich in Memo1 folgendes eingebe:
____________
aaa
bbb

ccc
____________
soll er daraus
____________
aaa

bbb



</p>
ccc

____________
machen. Er macht aber:
____________
aaa

</p>
bbb

</p>


</p>
ccc

</p>
____________

das verstehe ich nicht?!

dragi

Alexander 31. Jul 2003 07:57

Re: memo(oder ähnliches) als html umwandeln
 
versuch mal so:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i,j: integer;
begin
  Memo2.Lines.clear;
  for i := 0 to Memo1.Lines.Count-1 do
    begin
     Memo2.Lines.Add(Memo1.Lines[i] + '
');
     If Memo1.Lines[i] = '' then
      begin
       j := i;
       Memo2.Lines[i] := Memo1.Lines[i] + '

</p>'
      end;
    end;
end;

dragi 31. Jul 2003 08:08

Re: memo(oder ähnliches) als html umwandeln
 
Danke, so funzt es! Wohl der toale newbie Fehler ...:)

BungeeBug 31. Jul 2003 08:55

Re: memo(oder ähnliches) als html umwandeln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich hatte grad langeweile also hab ich auch mal ne "Lösung" gebastelt :)

dragi 31. Jul 2003 09:09

Re: memo(oder ähnliches) als html umwandeln
 
Hehe, so schnell geht das :)

Nur muss es alle Formatierung können, Fett, Kursiv, Schriftgrösse, Farbe und so.....

Deshalb sitz ich da als newbie nen bisschen länger dran.

Würde gerne mit der maus einen Zeile markieren und dann per Checkbox ändern.

Hatte mir das so vorgestellt aber klappt noch nicht meldet Fehler in Bereichsprüfung:

Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var i: integer;
begin
  if memo1.SelText = true then
  begin
  Memo1.Lines[i] := Memo1.SelText;
  Memo2.Lines[i] := Memo1.SelText[i] + 'Fett';
  end;
end;
bzw. so geht es gar nicht. Den Fehler meldet er wenn ich das so mache:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var i: integer;
begin
 
  Memo1.Lines[i] := Memo1.SelText;
  Memo2.Lines[i] := Memo1.SelText[i] + 'Fett';

end;
geht mir nur darum das er erkennt welche Zeile ich markiere und dann etwas dazu schreibt. Also, ich markiere die textzeile mache dann ein Haken in der Checkbox dann soll er in der zeile etwas hinzufügen

Alexander 31. Jul 2003 09:19

Re: memo(oder ähnliches) als html umwandeln
 
Also mit CaretPos kannst du das machen. Da hast du die X und Y-Koordinate...
Aber irgendwie ist das nicht so elegant das so zu machen, finde ich wenigstens ;-)
Wie wäre es wenn du einfach eine Richedit-Komponente nimmst, die kann dann auch die Formatierungen darstellen. Das wäre doch eleganter oder?

Alexander 31. Jul 2003 09:21

Re: memo(oder ähnliches) als html umwandeln
 
Wenn du das damit machen willst, kannst du hier mal nach Richedit und formatierung oder so suchen und/oder dir das Borland-Beispiel ankucken (unter Demos/Richedit)
Ist aber auch ncit ganz so optimal das Beispiel. Hier gibt es sicherlich bessere Beispiele


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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