Ich habe eine Zeichenfolge in einem Array und ich möchte es in eine Datei schreiben. Das Problem ist, dass ich für eine Anzahl von Zeichen, die auf 100 begrenzt sind, schreiben muss, dann muss ich zu der Zeile zurückkehren und den Inhalt des Satzes beenden. Wenn dann wieder 100 Zeichen vorkommen, kehre ich zu der Zeile zurück, bis ich meinen Ketteninhalt in der Tabelle beendet habe.Schreiben Sie eine begrenzte Anzahl von Zeichen, dann kehren Sie zu der Zeile in Perl zurück und schneiden Sie nicht das letzte Wort
Antwort
Ich denke, Sie suchen etwas wie Text::Reform oder Text::Autoformat.
Das Text::Wrap
Modul wird wahrscheinlich tun, was Sie wollen, und ist ein Teil von Kern Perl, was bedeutet, dass Sie es nicht installieren müssen.
Dieses Programm liest den Text aus dem DATA
Pseudo-Handle und formatiert es neu.
use strict;
use warnings;
use Text::Wrap;
my @text = <DATA>;
chomp @text;
$Text::Wrap::columns = 100;
print Text::Wrap::wrap '', '', @text;
__DATA__
"Text::Wrap::wrap()" is a very simple paragraph formatter. It formats a
single paragraph at a time by breaking lines at word boundaries.
Indentation is controlled for the first line ($initial_tab) and all
subsequent lines ($subsequent_tab) independently. Please note:
$initial_tab and $subsequent_tab are the literal strings that will be
used: it is unlikely you would want to pass in a number.
Text::Wrap::fill() is a simple multi-paragraph formatter. It formats
each paragraph separately and then joins them together when it's done.
It will destroy any whitespace in the original text. It breaks text into
paragraphs by looking for whitespace after a newline. In other respects
it acts like wrap().
Both "wrap()" and "fill()" return a single string.
Ausgang
"Text::Wrap::wrap()" is a very simple paragraph formatter. It formats a single paragraph at a time
by breaking lines at word boundaries. Indentation is controlled for the first line ($initial_tab)
and all subsequent lines ($subsequent_tab) independently. Please note: $initial_tab and
$subsequent_tab are the literal strings that will be used: it is unlikely you would want to pass in
a number. Text::Wrap::fill() is a simple multi-paragraph formatter. It formats each paragraph
separately and then joins them together when it's done. It will destroy any whitespace in the
original text. It breaks text into paragraphs by looking for whitespace after a newline. In other
respects it acts like wrap(). Both "wrap()" and "fill()" return a single string.
wirklich tanks dieses Modul ist sehr nützlich, aber ich muss einen caractere hinzufügen, bevor chaque ligne hat jemand eine Idee? – user1326482
@ user1236482, Comme ceci: 'Mein $ Wrapped = Text :: Wrap :: wrap (...); $ wrapped = ~ s/^ X // gm; print $ wrapped; '[" Chaque ligne "==" jede Linie "] – ikegami
Panzer viel, die arbeiten – user1326482
- 1. Löschen Sie das letzte Wort einer Zeile in der Shell
- 2. Das letzte Wort nicht in Zeile lesen
- 3. Drucken Sie das erste Wort in jeder Spalte als Zeile.
- 4. Beenden Sie das hängende Programm und kehren Sie zu Turbo Pascal 3 zurück
- 5. Wie Sie eine Zeile Wort für Wort in Python eingeben?
- 6. Modifizieren und dann 2D-Array unbekannter Größe in Perl schneiden
- 7. Wie kehren Sie mit Quellbaum zurück?
- 8. So entfernen Sie das letzte Zeichen von der Zeichenfolge
- 9. Füllen Sie eine begrenzte Anzahl von Werten - tidyr
- 10. Wie kehren Sie zu einem Bash-Skript zurück?
- 11. Streifen Sie das letzte und erste Zeichen von einem String
- 12. Holen Sie sich das letzte Zeichen in der Zeichenfolge
- 13. Gibt eine Zeichenfolge zurück, wenn sie ein bestimmtes Wort enthält
- 14. So deaktivieren Sie R, indem Sie das Zeichen "-" in "." Zeichen beim Schreiben in eine Datei?
- 15. Wie finden Sie das letzte Element in der Liste und zeigen Sie zu Datagridview in C#
- 16. Öffnen Sie eine DLL und schreiben Sie
- 17. Geben Sie eine bestimmte Anzahl von Zeichenfolgen in Python zurück.
- 18. Ersetzen Sie das letzte Zeichen der Zeichenfolge mit JavaScript
- 19. Ersetzen Sie das erste Wort durch das letzte Wort in C#
- 20. Microsoft Translator api kehren seltsame Zeichen zurück
- 21. Schneiden Sie einen UTF8-Text in PHP
- 22. Schreiben Sie eine bestimmte Zeile in PHP
- 23. Suchen Sie ein bestimmtes Wort in der Zeichenfolge und drucken Sie den Rest der Zeile
- 24. Entfernen Sie das letzte Zeichen von wxPython wxTextCtrl?
- 25. Schreiben Sie weiter in eine zweite Zeile von richtextbox
- 26. Entfernen Sie das letzte Zeichen aus der Zeichenfolge (Python)
- 27. So entfernen Sie das letzte CR-Zeichen mit `cut`
- 28. DELETE das letzte Zeichen aus einer Zeile, wenn das letzte Zeichen ist char (10) in SQL
- 29. Objective C - Entfernen Sie das letzte Zeichen aus der Zeichenfolge
- 30. Begrenzen Sie das UILabel auf 500 Zeichen und dann kürzen Sie das UIlabel in IOS
ist Ihre Frage schwer zu lesen und noch schwerer zu verstehen. [Bearbeiten, um es zu verbessern] (http://stackoverflow.com/posts/10106418/edit): Interpunktion hinzufügen. Geben Sie Beispieleingabe und -ausgabe an. Zeigen Sie den Code, den Sie bereits geschrieben haben, um das Problem zu lösen, und weisen Sie genau auf die Teile hin, mit denen Sie Probleme haben, ohne unsere Hilfe. – daxim
Bitte zeigen Sie einige Beispiele für Ihr Array und das Format, das Sie ausgeben möchten. Wenn Sie ein Array haben, bedeutet das, dass es mehrere Strings gibt? – Borodin