Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Textdateien in verschiedene Arrays schreiben

Frage Microsoft Microsoft Office

Mitglied: TomVBA

TomVBA (Level 1) - Jetzt verbinden

05.02.2009, aktualisiert 17:14 Uhr, 3633 Aufrufe, 2 Kommentare

Liebe VBA Experten!

Ich möchte für jeden Eintrag in einer Listbox (Pfad einer Textdatei) ein seperates Array erstellen um später mit einzelnen Werten aus diesen Arrays eine Tabelle füllen.
um dies in einer Schleife abzuarbeiten können, würde ich gerne das anzusprechende Array durch MyArrayX = "MyArray" & h (wobei h die Schleifennummer ist) definieren.

Am Ende bekomme ich bei
MsgBox MyArrayX(0, 0) -> die richtige Zeile aus der richtigen Textdatei zb. " 1WERKSTUECK WERKSTUECK 2508.00 181.00RE ST 0 0 0 0 0 0 0 0 "
aber wenn ich das Array direkt ansprechen will :
MsgBox MyArray0(0,0) -> die Meldung "Typen unverträglich"

ist mein Ansatz überhaupt möglich bzw. was mache ich falsch ?

Danke schon mal im Voraus.

Tom


Option Explicit
Dim MyArray0() As String
Dim MyArray1() As String...

Sub Array_fuellen()

Dim Temptabelle As Variant
Dim Tempstring As String
Dim Freie_Datei As Integer, Spalten As Integer, Zeilen As Integer
Dim h As Integer 'Zähler Listenindex
Dim i As Integer 'Zähler array einlesen
Dim MyArrayX As Variant 'Variable wird mit zu bearbeitenden Array befüllt (MyArray0.....)


Freie_Datei = FreeFile
Zeilen = 0

For h = 0 To ListBox2.ListCount - 1 '1 Schleife für jedes Werkstück
'Array name aus Fixwert (MyArray) und Schleifennummer bilden
MyArrayX = "MyArray" & h
'
Listbox2 einzelne Datei öffnen und Array nach Zeilen dimensionieren
Open ListBox2.List(h) For Input As #Freie_Datei
Input #Freie_Datei, Tempstring
Temptabelle = Split(Tempstring, ";")
Spalten = UBound(Temptabelle, 1)
ReDim MyArrayX(Spalten, Zeilen)
Close Freie_Datei
'**Listbox2 einzelne Datei öffnen und einlesen
Zeilen = 0
Open ListBox2.List(h) For Input As #Freie_Datei
While Not EOF(Freie_Datei)
ReDim Preserve MyArrayX(Spalten, Zeilen)
Input #Freie_Datei, Tempstring
Temptabelle = Split(Tempstring, ";")
For i = 0 To Spalten
MyArrayX(i, Zeilen) = Temptabelle(i)
Next i
Zeilen = Zeilen + 1
Wend
Close Freie_Datei
MsgBox MyArrayX(0, 0) 'Beginnt bei 0 !!!
MsgBox MyArray0(0,0)


Next h
End Sub
Mitglied: bastla
05.02.2009 um 22:47 Uhr
Hallo TomVBA!

Entweder baust Du das Ganze als dreidimensionales Array auf (Dateinummer,Zeile,Spalte), oder Du splittest erst bei Bedarf - dann genügt ein eindimensionales Array, welches in jedem Element die gesamte Textdatei als weiteres eindimensionales Array - Elemente sind die einzelnen Zeilen - enthält) - wobei ich allerdings zur Performance nichts sagen kann, daher ggf ausprobieren ...

Die Variante 2 sähe etwa so aus:
01.
Sub Array_fuellen() 
02.
Set fso = CreateObject("Scripting.FileSystemObject") 
03.
Dim Daten 
04.
MaxIndexDateien = ListBox2.ListCount - 1 
05.
ReDim Daten(MaxIndexDateien) 
06.
For h = 0 To MaxIndexDateien 
07.
    Daten(h) = Split(fso.OpenTextFile(ListBox2.List(h)).ReadAll, vbCrLf) 
08.
Next 
09.
MsgBox Split(Daten(1)(8), ";")(3) 
10.
End Sub
In der MsgBox wird (da nullbasierend) der Inhalt von Spalte 4 der Zeile 9 der Datei 2 ausgegeben.

Grüße
bastla
Bitte warten ..
Mitglied: TomVBA
06.02.2009 um 12:56 Uhr
Er sandte sein Wort und machte sie gesund und errettete sie, dass sie nicht darben. (Psalm 107, 20)


Vielen Dank
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Windows 10
gelöst Zeichenfolge in .reg Datei schreiben (Registry) (4)

Frage von MedicalAd zum Thema Windows 10 ...

Windows Server
gelöst Windows-Sicherung auf verschiedene Datenträger (4)

Frage von zeroblue2005 zum Thema Windows Server ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...