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, 3627 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Loginzeiten aus dem Ereignisprotokoll in Excel schreiben (1)

Frage von l-Ne0n zum Thema Batch & Shell ...

Batch & Shell
gelöst Selected Gridview Value in Variable schreiben (4)

Frage von reissaus73 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...