Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

String zeichenweise in Array einlesen

Forumthread: String zeichenweise in Array einlesen

String zeichenweise in Array einlesen
12.04.2002 12:31:09
Olli
Hi,
habe folgendes Problem: ich habe eine String-Variable und ein Array welches so groß wie der String lang ist. Ich möchte nun das 1.Zeichen des String in Array(0) das 2.Zeichen in Array(1), etc. schreiben.

Beispiel:
variable="Hallo"
laenge=Len(variable)
ReDim ZeichenArray(laenge-1)
....
ZeichenArray(0) --> "H"
ZeichenArray(1) --> "a"
ZeichenArray(2) --> "l"
ZeichenArray(3) --> "l"
ZeichenArray(4) --> "o"

Wichtig: ich möchte alles in Variablen halten un nicht in irgendwelche Excel-Zellen wegschreiben!

Wer kann helfen?

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: String zeichenweise in Array einlesen
12.04.2002 12:51:27
Michael Scheffler
Hallo,

eine Schleife von 1 bis Len schreiben und dann mit dem "Mid"-Befehl die Zeichen zuweisen.

Gruß

Micha

Re: String zeichenweise in Array einlesen
12.04.2002 12:52:27
andré
hallo!

auszug aus der Hilfe von excel:


Mid-Funktion

Gibt einen Wert vom Typ Variant (String) zurück, der eine bestimmte Anzahl von Zeichen aus einer Zeichenfolge enthält.

Syntax

Mid(string, start[, length])

Die Syntax der Mid-Funktion verwendet die folgenden benannten Argumente:

Teil Beschreibung
string Erforderlich. Zeichenfolgenausdruck, aus dem Zeichen zurückgegeben werden. Wenn string den Wert Null enthält, wird Null zurückgegeben.
start Erforderlich; Wert vom Typ Long. Position in string, an der die zurückzugebende Zeichenfolge beginnt. Ist start größer als die Anzahl der Zeichen in string, so gibt Mid eine leere Zeichenfolge ("") zurück.
length Optional; Wert vom Typ Variant (Long). Anzahl der zurückzugebenden Zeichen. Wird length nicht angegeben oder befinden sich weniger Zeichen im Text (das Zeichen an der Stelle start eingeschlossen), als durch length angegeben, so werden alle Zeichen ab start bis zum Ende der Zeichenfolge zurückgegeben.

Bemerkungen

Mit der Len-Funktion können Sie die Anzahl der Zeichen in string bestimmen.

Anmerkung Die MidB-Funktion wird für die Byte-Daten verwendet, die in einer Zeichenfolge enthalten sind, wie in Sprachen mit Doppelbyte-Zeichensatz (DBCS = double-byte character set). Die Argumente geben nicht die Anzahl der Zeichen an, sondern die Anzahl der Bytes. Beispiel-Code, der MidB verwendet, finden Sie im zweiten Beispiel im Beispielthema.

somit sollte es dir möglich sein.

mfg andré

Anzeige
Re: String zeichenweise in Array einlesen
12.04.2002 14:42:37
Olli
OK Danke
Alles im Lot
;
Anzeige

Infobox / Tutorial

String zeichenweise in Array einlesen


Schritt-für-Schritt-Anleitung

  1. String-Variable und Array definieren: Beginne mit der Definition deiner String-Variable und des Arrays. Zum Beispiel:

    Dim variable As String
    variable = "Hallo"
    Dim laenge As Integer
    laenge = Len(variable)
    Dim ZeichenArray() As String
    ReDim ZeichenArray(laenge - 1)
  2. Schleife zur Zuweisung der Zeichen: Nutze eine Schleife, um jedes Zeichen des Strings in das Array zu schreiben. Das kannst du mit der Mid-Funktion erreichen:

    Dim i As Integer
    For i = 0 To laenge - 1
       ZeichenArray(i) = Mid(variable, i + 1, 1)
    Next i
  3. Überprüfen des Ergebnisses: Du kannst die Inhalte des Arrays anschließend ausgeben, um sicherzustellen, dass alles korrekt zugewiesen wurde:

    For i = 0 To laenge - 1
       Debug.Print ZeichenArray(i)
    Next i

Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des Bereichs": Dies passiert, wenn du versuchst, auf ein Element des Arrays zuzugreifen, das nicht existiert. Stelle sicher, dass du die Schleife korrekt von 0 bis laenge - 1 laufen lässt.

  • Fehler: "Typ Mismatch": Achte darauf, dass die Typen von Variablen übereinstimmen. Wenn du ein Array von Strings verwendest, sollte auch die Variable, die die Zeichen speichert, vom Typ String sein.


Alternative Methoden

Eine andere Möglichkeit, einen String zeichenweise in ein Array einzulesen, ist die Verwendung von Split in Kombination mit einem Platzhalter. Diese Methode ist jedoch weniger direkt und kann bei komplexeren Strings ungenau sein. Ein Beispiel:

Dim ZeichenArray() As String
ZeichenArray = Split(variable, "")

Beachte, dass dies in der Regel nicht empfohlen wird, da Split nicht für diese Anwendung optimiert ist.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie die Methode in einem kompletten Skript verwendet wird:

Sub BeispielStringInArray()
    Dim variable As String
    variable = "Excel"
    Dim laenge As Integer
    laenge = Len(variable)
    Dim ZeichenArray() As String
    ReDim ZeichenArray(laenge - 1)

    Dim i As Integer
    For i = 0 To laenge - 1
        ZeichenArray(i) = Mid(variable, i + 1, 1)
    Next i

    For i = 0 To laenge - 1
        Debug.Print ZeichenArray(i)
    Next i
End Sub

Dieses Skript gibt die Buchstaben des Wortes "Excel" in der Konsole aus.


Tipps für Profis

  • Nutze die Mid-Funktion effizient, um nicht nur einzelne Zeichen, sondern auch Teilstrings zu extrahieren.
  • Wenn du mit sehr langen Strings arbeitest, überlege, ob du die Performance durch Arrays verbessern kannst, indem du den Speicherbedarf minimierst und so die Geschwindigkeit erhöhst.
  • Halte deine Arrays dynamisch, indem du sie entsprechend der Länge deines Strings dimensionierst, um Speicher zu sparen.

FAQ: Häufige Fragen

1. Kann ich diese Methode in Excel 2016 verwenden?
Ja, die beschriebenen Methoden funktionieren in Excel 2016 und auch in neueren Versionen.

2. Wie kann ich die Zeichen in umgekehrter Reihenfolge in das Array einlesen?
Ändere die Schleife, sodass sie von laenge - 1 bis 0 rückwärts läuft:

For i = laenge - 1 To 0 Step -1
    ZeichenArray(laenge - 1 - i) = Mid(variable, i + 1, 1)
Next i

3. Gibt es eine Möglichkeit, die Zeichen direkt in eine Excel-Zelle zu schreiben?
Ja, dafür kannst du das Array in eine Zelle schreiben, indem du Range("A1").Resize(laenge, 1).Value = Application.Transpose(ZeichenArray) verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige