Freigeben über


ALINES( )-Funktion

Kopiert jede Zeile in einem Zeichenausdruck oder einem Memofeld zu einer entsprechenden Zeile in einem Array.

ALINES(ArrayName, cExpression [, lTrim] [cParseChar, ,… ,cParseChar])

Rückgabewerte

Numerisch

Parameter

  • ArrayName
    Gibt den Namen des Arrays an, in das die Zeilen aus dem Zeichenausdruck oder Memofeld kopiert werden. Ist das angegebene Array nicht vorhanden, wird es von Visual FoxPro automatisch erstellt. Ist das Array vorhanden, aber nicht groß genug, um alle Zeilen aus dem Memofeld aufzunehmen, vergrößert Visual FoxPro das Array automatisch. Ist das Array größer als notwendig, wird es abgeschnitten.
  • cExpression
    Gibt den Zeichenausdruck oder das Memofeld an, der bzw. das die in das Array zu kopierenden Zeilen enthält. Wenn es sich bei cExpression um eine leere Zeichenfolge oder den Nullwert handelt, wird ein Array mit einer einzigen Zeile erstellt. Diese Zeile enthält die leere Zeichenfolge. Sie können Doppelbyte-Ausdrücke verwenden.
  • lTrim
    Gibt an, dass die führenden und nachfolgenden Leerzeichen aus den in das Array kopierten Zeilen entfernt werden. Wenn lTrim Wahr (.T.) ist, werden führende und nachfolgende Leerzeichen aus den Zeilen entfernt. Wenn lTrim Falsch (.F.) ist oder nicht angegeben wurde, werden die führenden und nachfolgenden Leerzeichen nicht entfernt.
  • cParseChar
    Gibt ein oder mehrere Zeichen an, die als Trennzeichen für die Elemente in cExpression dienen, die von der ALINES( )-Funktion zurückgegeben werden. Der maximal zulässige Wert für cParseChars beträgt 23.

Hinweise

ALINES( ) gibt die Zeilenzahl im Array zurück (oder, was das gleiche ist, die Anzahl der Zeilen im Zeichenausdruck oder Memofeld). Die erste Zeile des Zeichenausdrucks oder Memofeldes wird in die erste Zeile des Arrays kopiert, die zweite Zeile des Zeichenausdrucks oder Memofeldes in die zweite Zeile des Arrays usw.

Bei Zeichenausdrücken wird grundsätzlich die Groß-/Kleinschreibung berücksichtigt.

Ein Zeilenvorschub- (CHR(10)) oder Wagenrücklaufzeichen (CHR(13)) kennzeichnet das Ende einer Zeile. Das Zeilenende kann aber auch durch eine der Kombinationen aus diesen beiden Zeichen gekennzeichnet sein: (CHR(10) + CHR(13) oder CHR(13) + CHR(10)). Das Standardverhalten für ALINES( ) besteht darin, CHR(13) und CHR(10) zu ignorieren, wenn ein oder mehrere Werte für cParseChar angegeben werden, es sei denn, Sie geben auch die Zeilenendezeichen an.

ALINES( ) bietet eine einfache Methode zum Durcharbeiten von Zeilen in einem Zeichenausdruck oder Memofeld. MLINES( ) kann zwar auch dazu verwendet werden, einen Zeichenausdruck oder ein Memofeld durchzuarbeiten, aber ALINES( ) ist schneller und erfordert eine weniger umfangreiche Programmierung. Außerdem wird ALINES( ) nicht durch den Wert von SET MEMOWIDTH beeinflusst.

Zum Kopieren der Zeilen aus einem großen Memofeld in ein Array benötigen Sie ausreichend Speicherplatz. Wenn Sie nicht über genug Speicherplatz verfügen, generiert Visual FoxPro eine Fehlermeldung.

Wenn Sie eine Analyse ohne Berücksichtigung der Groß-/Kleinschreibung durchführen möchten, können Sie sich an einem der folgenden Beispiele orientieren.

? ALINES(aMyArray,UPPER(employee.notes), "R.") 
? ALINES(aMyArray,employee.notes, "R.", "r.")

Beispiel

Das folgende Programm öffnet die Tabelle Employee der Testdata-Datenbank. ALINES( ) wird dazu verwendet, die Zeilen aus dem Memofeld Notes in ein Array namens aMyArray zu kopieren. Anschließend wird der Inhalt des Arrays angezeigt.

In diesem Beispiel gibt ALINES( ) 1 zurück, da die Beschreibungen für Employee in das Memofeld eingegeben wurden, ohne hinter irgendeinem der Sätze die Eingabetaste zu betätigen.

CLOSE DATABASES
CLEAR
SET TALK OFF
OPEN DATABASE (HOME(2) + 'data\testdata')
USE employee  && Open Employee table

? ALINES(aMyarray,employee.notes,CHR(13))  && Displays 1
? ALINES(aMyarray,employee.notes,".")  && Displays 7
? ALINES(aMyarray,employee.notes,",")  && Displays 4
? ALINES(aMyarray,employee.notes," ")  && Displays 75
? ALINES(aMyarray,employee.notes,".", ",")  && Displays 10
? ALINES(aMyArray, employee.notes)  && Displays 1
? aMyArray(1)

Siehe auch

MEMLINES( )-Funktion |_MLINE-Systemvariable | SCATTER-Befehl | MLINE( )-Funktion | SET MEMOWIDTH-Befehl | ATCLINE( )-Funktion | ATLINE( )-Funktion | COPY MEMO-Befehl | MODIFY MEMO-Befehl