Absatz gießt aus einem Texteditor


In einem word-Prozessor, können arbeiten auf die Absätze und Gießen Sie sie dann
in andere Programme als einzelne Linien, durch die empfangende Fenster gewickelt. Hier ist, wie dies in einem normalen Text-Editor zu schreiben.
Absatz 'gießen', aus einem Texteditor
Gen Fowler
[email protected]
Hinweise:
1: Wenn Sie Code aus meiner mehrere Artikel über Mdi-Text-Editoren ein Exemplar von TextEdit Inbetriebnahme sind, gibt es eine Korrektur in der SaveAs1Click-Routine vorgenommen werden, müssen Sie es in. Die Linie
OpenFiles.Insert (Tag, Pfadnamen);
sollte ersetzt werden durch
OpenFiles.Insert (0, Pfadnamen);
Dies ist wichtig, weil beim Speichern einer neuen Datei betroffen ist. Die ersten Tests erfolgen zweifellos in eine neue Datei. Ich nehme an, TextEdits ursprünglichen SaveAs1Click wird nicht Prsent kein Problem. Ich habe in meinem Code aus der sehr viel komplexere eWriter.
2: Den Prüfstand für diesen Code ist Borlands TextEdit-Demo, die mit Delphi kommt. Wenn Sie in Delphi 5 oder 5.01 kompilieren, brauchen Sie die modifizierte forms.pas, die ich Ihnen in meinem früheren Artikel direkt Programmierung System/Next (Prev) in MDI-Editoren.
Können Sie ignorieren die Warnung über 5.0 X, weil Sie nicht brauchen eine untergeordnete Fenster Behandlung zu tun. Ein Schreiben-Fenster ist alles was, die Sie brauchen, um die Funktion zu testen. Ich habe die Funktion in meinem Textwriter, eWriter, um dieser Artikel in der Seite zu gießen, den Sie gerade lesen. Sie können TextEdit verwenden, um die Funktion zu testen.
Eigentlich TextEdit bricht Zeilen am Rande Fenster und exportiert den Absätzen als einzelne Linien. Du musst TextEdit weit genug über die Linienenden zu erweitern, die Sie, mit der Enter-Taste erstellen um zu verhindern, zu vergessen, Enter, so dass das Fenster schließt. In eWriter verwende ich 'Spalte Wrap', also geben Sie nicht für jede Zeile verwendet wird. Die Idee in einem Texteditor oder Textwriter, ist jedoch, dass Sie haben Spalte umbrochen, oder verwenden Sie die Enter-Taste. Gestaltung des Textes ist der Schriftsteller Wahl. Es ist kein Stream. Allerdings sollten der Schriftsteller, dann Gießen Sie Text in einigen Fenstern und lassen sie wickeln oder, wie ich mit Outlook Express, lassen Sie das Programm wickeln. OE umbrochen wird, wann es sendet den Text.
TextEdit ist eines gewöhnlichen Text-Editor. Ich sage statt reiner, gewöhnliche, weil es 8-Bit-Zeichen druckt, aber es normal, dass ist es ist kein Rtf-Editor. Es ist näher an Notepad als mit Wordpad. Aber wie Sie wissen, es ist in ein RichEdit-Steuerelement. Dadurch viel Magie. Möchten Sie die visuellen Bookmarks? Mark Textblöcke (Sätze, Titel, etc.) und Farbe sie rot. Dann können Sie unter ihnen schnell Scrollen. Oder, wenn Sie auf html-Dateien arbeiten, Farbe Ihre Tags beim Laden (als Option). Sie können tun, alle diese Dinge hinter den Kulissen in die RichEdit und diese Färbungen haben keinen Einfluss auf Ihren Text überhaupt. Auf der anderen Seite angenommen Sie, Sie Ihren html-Text mit farbigen Markierungen drucken möchten. In einer anderen Datei als Rtf exportieren und Drucken von Wordpad.
In folgenden Code verwende ich ein paar Arbeitsspeicherstreams um den Text durch laufen und ziehen Sie jedes #13 #10 es sei denn, es gibt zwei, so dass Leerzeilen trennen Absätze bleiben um die ausgefüllten Zeilen trennen. Editor.PlainText ist festgelegt auf False zu Beginn und wieder auf True am Ende. So funktioniert die magische Box. Dies funktioniert, aber ohne Zweifel mein lesen und ändern den Textstream vereinfacht werden könnten.

Menüpunkt:
Bildunterschrift: Ziehen Sie n Zeilen in 1
Name: NLinestoOne1
Code:
Prozedur TEditForm.NLinestoOne1Click(Sender: TObject);
Etikett
Skip;
var
Stream1, Stream2: TMemoryStream;
p, f: PChar;
c: Char;
IsPar: Ganzzahl;
Prozedur SetStreams;
beginnen
Wenn Editor.Text <> '' dann
Editor.PlainText: = False
sonst
Ausfahrt;
Stream1: = Nil;
Stream2: = Nil;
versuchen Sie
Stream1: = TMemoryStream.Create;
Stream2: = TMemoryStream.Create;
Stream1.setSize(longInt(length(Editor.Text)));
Editor.Lines.SaveToStream(Stream1);
Stream2.setSize(2 * Stream1.Size);
p: = Stream1.Memory;
Q: = Stream2.Memory;
mit Ausnahme von
Wenn Stream1 <> nil dahin
Stream1.Free;
Wenn Stream2 <> nil dahin
Stream2.Free;
Ende;
Ende;
beginnen
Wenn MessageDlg ('Sie sollten die Linien in Blöcken getrennt' +
' von leeren Zeilen oben in einzelnen Linien gezogen. Sie können ' +
'wollen Sie Absätze, ohne Zeilenumbrüche, so dass sie wickelt können' +
' ein Fensterrand. Dies wird es tun. ' #13 #13 +
'Warnung: dieses verarbeitet die gesamte Datei. Wenn Sie anwenden ' +
'dies auf nur einen Block von der Datei verschieben es in ein anderes Fenster' +
'und es dort zu verarbeiten, bevor Sie sie zurück zu verschieben.'
MtInformation, [MbOK, MbCancel], 0) = MrCancel then Exit;
Wenn Editor.Text = '' then Exit;
IsPar: = 0;

versuchen Sie
SetStreams;
Zwar nicht (p ^ = #0) tun
beginnen
c: = p ^;
Inc(p);
Wenn (IsPar = 4) und (c = ' ') dann
IsPar: = 5
sonst
Wenn (IsPar = 3) und (c = 'R') dann
IsPar: = 4
sonst
Wenn (IsPar = 2) und (c = 'a') dann
IsPar: = 3
sonst
Wenn (IsPar = 1) und (c = 'p') dann
IsPar: = 2
sonst
Wenn C = ' \' dann
IsPar: = 1
sonst IsPar: = 0;
Wenn (IsPar = 5) dann
beginnen
Wenn nicht (p ^ = #13) dann
Q: = Q - 4 / / \par entfernt, Anschluss an Raum verlässt
sonst
beginnen
Dec(q^);
Q ^: = c;
Inc(q);
q^ := '\';
Inc(q);
q^ := 'p';
Inc(q);
q^ := 'a';
Inc(q);
q^ := 'r';
Inc(q);
p: = p + 7; #13#10\par(sp) überspringen
Ende;
Ende;
Q ^: = c;
Inc(q);
Wenn p ^ = #0 then
Q ^: = #0;
Ende;
Editor.Text: = '';
Editor.Lines.LoadFromStream(Stream2);
Schließlich
Wenn Stream1 <> nil dahin
Stream1.Free;
Wenn Stream2 <> nil dahin
Stream2.Free;
Editor.PlainText: = True;
Editor.Modified: = True;
Ende;
Ende;

Zeilensprung-Bibliographie
Ich begann diesen Artikeln auf dabei einige der Dinge, die ich tun durchschlagender
in eWriter in der Delphi-Demo-TextEdit (aus denen ich eWriter gebaut).
Es ist natürlich all diese in eine Kopie von TextEdit zu sammeln. Und
Möglicherweise müssen Sie hin und her gehen, neue, füllen verpasst haben, oder
geänderte Unterstützung Routinen. Geschachteltes Hinweise erscheinen die meisten Orte. Abbildung
Es handelt sich um andauernde 'Shop' Gespräch...

  1. Programmierung von System/weiter (Prev) in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=143


  2. Selektive Tiling in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=147


  3. Kontrollnummern Fenster in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=154


  4. Absatz 'gießen', aus einem Texteditor

    https://www.HowToDoThings.com/showarticle.asp?article=178










Absatz gießt aus einem Texteditor


Absatz gießt aus einem Texteditor : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


In einem word-Prozessor, können arbeiten auf die Absätze und Gießen Sie sie dann
in andere Programme als einzelne Linien, durch die empfangende Fenster gewickelt. Hier ist, wie dies in einem normalen Text-Editor zu schreiben.
Absatz 'gießen', aus einem Texteditor
Gen Fowler
[email protected]
Hinweise:
1: Wenn Sie Code aus meiner mehrere Artikel über Mdi-Text-Editoren ein Exemplar von TextEdit Inbetriebnahme sind, gibt es eine Korrektur in der SaveAs1Click-Routine vorgenommen werden, müssen Sie es in. Die Linie
OpenFiles.Insert (Tag, Pfadnamen);
sollte ersetzt werden durch
OpenFiles.Insert (0, Pfadnamen);
Dies ist wichtig, weil beim Speichern einer neuen Datei betroffen ist. Die ersten Tests erfolgen zweifellos in eine neue Datei. Ich nehme an, TextEdits ursprünglichen SaveAs1Click wird nicht Prsent kein Problem. Ich habe in meinem Code aus der sehr viel komplexere eWriter.
2: Den Prüfstand für diesen Code ist Borlands TextEdit-Demo, die mit Delphi kommt. Wenn Sie in Delphi 5 oder 5.01 kompilieren, brauchen Sie die modifizierte forms.pas, die ich Ihnen in meinem früheren Artikel direkt Programmierung System/Next (Prev) in MDI-Editoren.
Können Sie ignorieren die Warnung über 5.0 X, weil Sie nicht brauchen eine untergeordnete Fenster Behandlung zu tun. Ein Schreiben-Fenster ist alles was, die Sie brauchen, um die Funktion zu testen. Ich habe die Funktion in meinem Textwriter, eWriter, um dieser Artikel in der Seite zu gießen, den Sie gerade lesen. Sie können TextEdit verwenden, um die Funktion zu testen.
Eigentlich TextEdit bricht Zeilen am Rande Fenster und exportiert den Absätzen als einzelne Linien. Du musst TextEdit weit genug über die Linienenden zu erweitern, die Sie, mit der Enter-Taste erstellen um zu verhindern, zu vergessen, Enter, so dass das Fenster schließt. In eWriter verwende ich 'Spalte Wrap', also geben Sie nicht für jede Zeile verwendet wird. Die Idee in einem Texteditor oder Textwriter, ist jedoch, dass Sie haben Spalte umbrochen, oder verwenden Sie die Enter-Taste. Gestaltung des Textes ist der Schriftsteller Wahl. Es ist kein Stream. Allerdings sollten der Schriftsteller, dann Gießen Sie Text in einigen Fenstern und lassen sie wickeln oder, wie ich mit Outlook Express, lassen Sie das Programm wickeln. OE umbrochen wird, wann es sendet den Text.
TextEdit ist eines gewöhnlichen Text-Editor. Ich sage statt reiner, gewöhnliche, weil es 8-Bit-Zeichen druckt, aber es normal, dass ist es ist kein Rtf-Editor. Es ist näher an Notepad als mit Wordpad. Aber wie Sie wissen, es ist in ein RichEdit-Steuerelement. Dadurch viel Magie. Möchten Sie die visuellen Bookmarks? Mark Textblöcke (Sätze, Titel, etc.) und Farbe sie rot. Dann können Sie unter ihnen schnell Scrollen. Oder, wenn Sie auf html-Dateien arbeiten, Farbe Ihre Tags beim Laden (als Option). Sie können tun, alle diese Dinge hinter den Kulissen in die RichEdit und diese Färbungen haben keinen Einfluss auf Ihren Text überhaupt. Auf der anderen Seite angenommen Sie, Sie Ihren html-Text mit farbigen Markierungen drucken möchten. In einer anderen Datei als Rtf exportieren und Drucken von Wordpad.
In folgenden Code verwende ich ein paar Arbeitsspeicherstreams um den Text durch laufen und ziehen Sie jedes #13 #10 es sei denn, es gibt zwei, so dass Leerzeilen trennen Absätze bleiben um die ausgefüllten Zeilen trennen. Editor.PlainText ist festgelegt auf False zu Beginn und wieder auf True am Ende. So funktioniert die magische Box. Dies funktioniert, aber ohne Zweifel mein lesen und ändern den Textstream vereinfacht werden könnten.

Menüpunkt:
Bildunterschrift: Ziehen Sie n Zeilen in 1
Name: NLinestoOne1
Code:
Prozedur TEditForm.NLinestoOne1Click(Sender: TObject);
Etikett
Skip;
var
Stream1, Stream2: TMemoryStream;
p, f: PChar;
c: Char;
IsPar: Ganzzahl;
Prozedur SetStreams;
beginnen
Wenn Editor.Text <> '' dann
Editor.PlainText: = False
sonst
Ausfahrt;
Stream1: = Nil;
Stream2: = Nil;
versuchen Sie
Stream1: = TMemoryStream.Create;
Stream2: = TMemoryStream.Create;
Stream1.setSize(longInt(length(Editor.Text)));
Editor.Lines.SaveToStream(Stream1);
Stream2.setSize(2 * Stream1.Size);
p: = Stream1.Memory;
Q: = Stream2.Memory;
mit Ausnahme von
Wenn Stream1 <> nil dahin
Stream1.Free;
Wenn Stream2 <> nil dahin
Stream2.Free;
Ende;
Ende;
beginnen
Wenn MessageDlg ('Sie sollten die Linien in Blöcken getrennt' +
' von leeren Zeilen oben in einzelnen Linien gezogen. Sie können ' +
'wollen Sie Absätze, ohne Zeilenumbrüche, so dass sie wickelt können' +
' ein Fensterrand. Dies wird es tun. ' #13 #13 +
'Warnung: dieses verarbeitet die gesamte Datei. Wenn Sie anwenden ' +
'dies auf nur einen Block von der Datei verschieben es in ein anderes Fenster' +
'und es dort zu verarbeiten, bevor Sie sie zurück zu verschieben.'
MtInformation, [MbOK, MbCancel], 0) = MrCancel then Exit;
Wenn Editor.Text = '' then Exit;
IsPar: = 0;

versuchen Sie
SetStreams;
Zwar nicht (p ^ = #0) tun
beginnen
c: = p ^;
Inc(p);
Wenn (IsPar = 4) und (c = ' ') dann
IsPar: = 5
sonst
Wenn (IsPar = 3) und (c = 'R') dann
IsPar: = 4
sonst
Wenn (IsPar = 2) und (c = 'a') dann
IsPar: = 3
sonst
Wenn (IsPar = 1) und (c = 'p') dann
IsPar: = 2
sonst
Wenn C = ' \' dann
IsPar: = 1
sonst IsPar: = 0;
Wenn (IsPar = 5) dann
beginnen
Wenn nicht (p ^ = #13) dann
Q: = Q - 4 / / \par entfernt, Anschluss an Raum verlässt
sonst
beginnen
Dec(q^);
Q ^: = c;
Inc(q);
q^ := '\';
Inc(q);
q^ := 'p';
Inc(q);
q^ := 'a';
Inc(q);
q^ := 'r';
Inc(q);
p: = p + 7; #13#10\par(sp) überspringen
Ende;
Ende;
Q ^: = c;
Inc(q);
Wenn p ^ = #0 then
Q ^: = #0;
Ende;
Editor.Text: = '';
Editor.Lines.LoadFromStream(Stream2);
Schließlich
Wenn Stream1 <> nil dahin
Stream1.Free;
Wenn Stream2 <> nil dahin
Stream2.Free;
Editor.PlainText: = True;
Editor.Modified: = True;
Ende;
Ende;

Zeilensprung-Bibliographie
Ich begann diesen Artikeln auf dabei einige der Dinge, die ich tun durchschlagender
in eWriter in der Delphi-Demo-TextEdit (aus denen ich eWriter gebaut).
Es ist natürlich all diese in eine Kopie von TextEdit zu sammeln. Und
Möglicherweise müssen Sie hin und her gehen, neue, füllen verpasst haben, oder
geänderte Unterstützung Routinen. Geschachteltes Hinweise erscheinen die meisten Orte. Abbildung
Es handelt sich um andauernde 'Shop' Gespräch...

  1. Programmierung von System/weiter (Prev) in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=143


  2. Selektive Tiling in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=147


  3. Kontrollnummern Fenster in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=154


  4. Absatz 'gießen', aus einem Texteditor

    https://www.HowToDoThings.com/showarticle.asp?article=178



Absatz gießt aus einem Texteditor

Absatz gießt aus einem Texteditor : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Absatz gießt aus einem Texteditor
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung