This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
vba:functions:wordwrap [21.10.2015 10:44:49] yaslaw created |
vba:functions:wordwrap [21.10.2015 11:26:26] (current) yaslaw |
||
---|---|---|---|
Line 9: | Line 9: | ||
//Mittels wordwrap() können längere Texte umgebrochen werden, ohne dass die Wörter zerstückelt werden// | //Mittels wordwrap() können längere Texte umgebrochen werden, ohne dass die Wörter zerstückelt werden// | ||
- | ==Version %%version%%%%== | + | ==Version %%version%% - %%vdate%%== |
{{%%fname%%|Download %%fname%% (V-%%version%%)}} | {{%%fname%%|Download %%fname%% (V-%%version%%)}} | ||
- | ===== Beschreibung ===== | + | ===== Definition ===== |
+ | ''string = wordwrap(string, long [,eWrapParams [,long]])'' | ||
+ | <code vb>Public Function wordwrap( _ | ||
+ | ByVal iText As String, _ | ||
+ | ByVal iMaxLen As Long, _ | ||
+ | Optional ByVal iParams As eWrapParams = ewwDefault, _ | ||
+ | Optional ByVal iBreak As String = vbCrLf _ | ||
+ | ) As Variant</code> | ||
+ | ***iText** Der Text, der zerlegt werden soll | ||
+ | ***iMaxLen** Maxiale Zeilenlänge | ||
+ | ***iParams** Settings zur Funktion. Siehe Enum [[#enumerator_ewrapparams|eWrapParams]]. Die Parameter sind komulierbar | ||
+ | ***iBreak** Trennzeichen. Normalerweise ein Zeilenumbruch (vbCrLf) | ||
+ | |||
+ | ==== Return ==== | ||
+ | EIn String oder ein Stringarray. Je nach eWrapParams. | ||
+ | |||
+ | ==== Enumerator eWrapParams ==== | ||
+ | <code vb> | ||
+ | Public Enum eWrapParams | ||
+ | ewwDefault = 0 | ||
+ | ewwReturnArray = 2 ^ 0 'Gibt ein Array anstelle eiens Strings zurück. Der Parameter iBreak wird ignoriert | ||
+ | ewwCutLongWords = 2 ^ 1 'Zerschneidet überlange Wörter | ||
+ | ewwRemoveBreaks = 2 ^ 2 'Bestehende Zeilnumbrüche im Originaltext werden entfernt | ||
+ | End Enum</code> | ||
===== Beispiele ===== | ===== Beispiele ===== | ||
+ | {{section>:snippets#vba_print_r&noheader&firstseconly}} | ||
==== Standartanwendung ==== | ==== Standartanwendung ==== | ||
- | <code vb> Dim text As String | + | <code vb> text = "Seit heute wird der Fahrplan im Bahnhof Zürich auf einem 19 Meter breiten LED-Bildschirm angezeigt. Je 15 Quadratmeter aber sind für Werbung reserviert." |
- | text = "Seit heute wird der Fahrplan im Bahnhof Zürich auf einem 19 Meter breiten LED-Bildschirm angezeigt. Je 15 Quadratmeter aber sind für Werbung reserviert." | + | |
Debug.Print wordwrap(text, 25)</code> | Debug.Print wordwrap(text, 25)</code> | ||
<code>Seit heute wird der | <code>Seit heute wird der | ||
Line 29: | Line 52: | ||
für Werbung reserviert.</code> | für Werbung reserviert.</code> | ||
+ | ==== Rückgabe als Array ==== | ||
+ | <code vb> text = "Seit heute wird der Fahrplan im Bahnhof Zürich auf einem 19 Meter breiten LED-Bildschirm angezeigt. Je 15 Quadratmeter aber sind für Werbung reserviert." | ||
+ | print_r wordwrap(text, 25, ewwReturnArray)</code> | ||
+ | <code><String()> ( | ||
+ | [0] => <String> 'Seit heute wird der' | ||
+ | [1] => <String> 'Fahrplan im Bahnhof' | ||
+ | [2] => <String> 'Zürich auf einem 19 Meter' | ||
+ | [3] => <String> 'breiten LED-Bildschirm' | ||
+ | [4] => <String> 'angezeigt. Je 15' | ||
+ | [5] => <String> 'Quadratmeter aber sind' | ||
+ | [6] => <String> 'für Werbung reserviert.' | ||
+ | )</code> | ||
+ | |||
+ | ==== Wörter die Länger als die erlabute Zeilenlänge sind ==== | ||
+ | Standart. Das zu lange Wort wird nicht zerstückelt | ||
+ | <code vb> text = "Die Autobahnbrückenspezialbeschilderung ist falsch" | ||
+ | Debug.Print wordwrap(text, 25)</code> | ||
+ | <code>Die | ||
+ | Autobahnbrückenspezialbeschilderung | ||
+ | ist falsch</code> | ||
+ | |||
+ | Das Wort zerstückeln | ||
+ | <code vb> text = "Die Autobahnbrückenspezialbeschilderung ist falsch" | ||
+ | Debug.Print wordwrap(text, 25, ewwCutLongWords)</code> | ||
+ | <code>Die | ||
+ | Autobahnbrückenspezialbes | ||
+ | childerung ist falsch</code> | ||
+ | |||
+ | Und das noch kombiniert mit der Array-Ausgabe | ||
+ | <code vb> text = "Die Autobahnbrückenspezialbeschilderung ist falsch" | ||
+ | print_r wordwrap(text, 25, ewwCutLongWords + ewwReturnArray)</code> | ||
+ | <code><String()> ( | ||
+ | [0] => <String> 'Die' | ||
+ | [1] => <String> 'Autobahnbrückenspezialbes' | ||
+ | [2] => <String> 'childerung ist falsch' | ||
+ | )</code> | ||
+ | |||
+ | ==== Text mit Zeilenumbruch ==== | ||
+ | Nehmen wir mal ein Text, der Bereits Zeilenumbrüche hat. Diese Sollen natürlich erhalten bleiben | ||
+ | <code vb> text = " Ausgetrocknetes Flussbett." & vbCrLf & "Die Töss führt diesen Oktober so gut wie kein Wasser." | ||
+ | Debug.Print wordwrap(text, 20)</code> | ||
+ | <code>Ausgetrocknetes | ||
+ | Flussbett. | ||
+ | Die Töss führt | ||
+ | diesen Oktober so | ||
+ | gut wie kein Wasser.</code> | ||
+ | |||
+ | Oder der Zeilenumbruch wird entfernt | ||
+ | <code vb> text = " Ausgetrocknetes Flussbett." & vbCrLf & "Die Töss führt diesen Oktober so gut wie kein Wasser." | ||
+ | Debug.Print wordwrap(text, 20, ewwRemoveBreaks)</code> | ||
+ | <code>Ausgetrocknetes | ||
+ | Flussbett. Die Töss | ||
+ | führt diesen Oktober | ||
+ | so gut wie kein | ||
+ | Wasser.</code> | ||
===== Code ===== | ===== Code ===== | ||
<source '%%fpath%%/%%fname%%' vb> | <source '%%fpath%%/%%fname%%' vb> |