BlackBoard » Design, Programmierung & Entwicklung » Programmieren » VBA Daten auslesen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen VBA Daten auslesen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
pmeyer pmeyer ist männlich
Aufsteiger


Dabei seit: 05.02.2002
Beiträge: 65
Herkunft: Melle bei Osnabrück

VBA Daten auslesen       Zum Anfang der Seite springen

Ich möchte in Excel Daten aus Textdateien auslesen.

Ich habe einen Ordner z.B. c:\test. Dieser enthält mehrere Unterordner und in diesen sind wieder mehrere Textdateien. Ich möchte nun aus allen Dateien in allen Ordnern das drittletzte und vorletzte Zeichen aus der viertletzten und drittletzten Zeile auslesen und an Excel zurückgeben.
17.04.2002 15:15 pmeyer ist offline E-Mail an pmeyer senden Beiträge von pmeyer suchen
Kalka Kalka ist männlich
BlackBoarder


Dabei seit: 16.03.2002
Beiträge: 856

      Zum Anfang der Seite springen

"das drittletzte und vorletzte Zeichen aus der viertletzten und drittletzten Zeile "

muss man das verstehen?
erklär mal genauer Augenzwinkern

cu Kalka

__________________
In wirklichkeit sind wir alle kleine grüne Kaninchen!
17.04.2002 15:21 Kalka ist offline E-Mail an Kalka senden Homepage von Kalka Beiträge von Kalka suchen
pmeyer pmeyer ist männlich
Aufsteiger


Dabei seit: 05.02.2002
Beiträge: 65
Herkunft: Melle bei Osnabrück

Themenstarter Thema begonnen von pmeyer
      Zum Anfang der Seite springen

OK, hier eine Beispiel Datei:

000170
000412@+
1220690-
0690J0@-
0874J0@+
1179J0@-
1222J0@+
1200J0@-
1164J0@+
1213J0@-
1178J5@+
1184K2@-
1237K1@+
1238J1@-
1170J1@+
1186K1@-
1215K0@+
1222J5@-
1182J4@+
1205K1@-
1213J7@+
1178J5@-
1193K2@+
1213J9@-
1192J5@+
1160J9@-
1196K5@+
1185J9@-
1155K1@+
1181K6@-
1191K1@+
1157J9@-
1152K6@+
1188K7@-
1174K0@+
1137K3@-
1167K9@+
1194K4@-
1155J9@+
1153K6@-
1176K6@+
1169K2@-
1146K4@+
1185K8@-
1191K1@+
1161J9@-
1169K5@+
1186K4@-
1175K0@+
1158K2@-
1190K6@+
1181K0@-
1171K1@+
1172K3@-
1192K3@+
1153J9@-
1172K6@+
1200K3@-
1178J8@+
1154K2@-
1190K6@+
1199K0@-
1171J8@+
1166K3@-
1198K4@+
1184J8@-
1168K1@+
1186K4@-
1193K0@+
1179J9@-
1196K2@+
1205J9@-
1171J7@+
1166K3@-
1198K4@+
1182J8@-
1158K1@+
1181K6@-
1198K1@+
1163J8@-
1171K5@+
1191K3@-
1178J9@+
1149K2@-
1199K7@+
1201J8@-
1158J8@+
1175K6@-
1196K2@+
1170J9@-
1158K3@+
1209K6@-
1185J6@+
1170K1@-
1171K3@+
1186K3@-
1152K0@+
1164K7@-
1185K4@+
1172K1@-
1141K3@+
1174K9@-
1166K3@+
1142K4@-
1143K8@+
1161K8@-
1151K5@+
1136K7@-
1146L0@+
1171K8@-
1149K3@+
1139K7@-
1170K9@+
1155K3@-
1129K6@+
1138L1@-
1160K9@+
1143K5@-
1131K8@+
1150L0@-
1145K7@+
1125K8@-
1147L2@+
1162K8@-
1134K5@+
1106L0@-
1146L5@+
1152K8@-
1118K7@+
1131L3@-
1148L0@+
1143K7@-
1123K8@+
1143L2@-
1145K8@+
1114K8@-
1130L4@+
1163L1@-
1150K5@+
1127K7@-
1155L1@+
1194K6@-
1155J9@+
1146K6@-
1173K8@+
1179K3@-
1174K2@+
1180K3@-
1204K2@+
1176J7@-
1179K2@+
1222K2@-
1220J4@+
1196J4@-
1208J9@+
1240J6@-
1214J1@+
1195J5@-
1238J9@+
1251J1@-
1228I9@+
1239J3@-
1290J1@+
1280I1@-
1241I3@+
1283J0@-
1313I3@+
1283H7@-
1294I3@+
1330I1@-
1332H4@+
1289H4@-
1062I2@+
#000017 -
#000018 +
#000100-
6
Die 17 und 18 möchte ich ausgelesen haben.
17.04.2002 15:31 pmeyer ist offline E-Mail an pmeyer senden Beiträge von pmeyer suchen
Kalka Kalka ist männlich
BlackBoarder


Dabei seit: 16.03.2002
Beiträge: 856

      Zum Anfang der Seite springen

....nur is das problem das ich kein VB kann großes Grinsen
gibt es denn keine function, die die zahlen 17+18 suchen können??

cu Kalka

__________________
In wirklichkeit sind wir alle kleine grüne Kaninchen!
17.04.2002 20:04 Kalka ist offline E-Mail an Kalka senden Homepage von Kalka Beiträge von Kalka suchen
pmeyer pmeyer ist männlich
Aufsteiger


Dabei seit: 05.02.2002
Beiträge: 65
Herkunft: Melle bei Osnabrück

Themenstarter Thema begonnen von pmeyer
      Zum Anfang der Seite springen

Ich will ja nicht 17+18 suchen, sondern die Zahlen die an dieser Position stehen. In anderen Dateien können da andere Zahlen stehen.
17.04.2002 20:38 pmeyer ist offline E-Mail an pmeyer senden Beiträge von pmeyer suchen
Kalka Kalka ist männlich
BlackBoarder


Dabei seit: 16.03.2002
Beiträge: 856

      Zum Anfang der Seite springen

kannse nicht einfach die strings nach und vor der stelle abschneide? mit "cut" oder so!?

cu Kalka

__________________
In wirklichkeit sind wir alle kleine grüne Kaninchen!
18.04.2002 17:53 Kalka ist offline E-Mail an Kalka senden Homepage von Kalka Beiträge von Kalka suchen
Medusa Medusa ist männlich
Senior Member


images/avatars/avatar-252.gif

Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...

      Zum Anfang der Seite springen

Ich würd mal sagen, die Zeichen rauszufinden is gar kein Problem. Das is in 5 Minuten geschrieben. Das größere Problem wäre, dem Prog zu sagen, dass er des mit allen Dateien in allen Unterordner, welche auch nochmal untergeordnete Unter-Unterordner untergeordnet haben großes Grinsen (hört sich cool an, wa).

__________________
Grüßle, Medi
21.04.2002 21:14 Medusa ist offline E-Mail an Medusa senden Beiträge von Medusa suchen
pmeyer pmeyer ist männlich
Aufsteiger


Dabei seit: 05.02.2002
Beiträge: 65
Herkunft: Melle bei Osnabrück

Themenstarter Thema begonnen von pmeyer
      Zum Anfang der Seite springen

Na gut, man könnte ja alle Textdateien in einen Ordner zusammenkopieren. Geht es dann?
22.04.2002 10:53 pmeyer ist offline E-Mail an pmeyer senden Beiträge von pmeyer suchen
Medusa Medusa ist männlich
Senior Member


images/avatars/avatar-252.gif

Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...

      Zum Anfang der Seite springen

gute idee.... großes Grinsen
Das mit dem kopieren kann ja das Prog auch selber machen... ich schreib's dir mal...

[Edit]: Ein weiteres Problem wäre dann, dass wenn in Ordner X eine Datei Y is, und in ordner Z auch eine Datei Y is und diese in einen Ordner kopiert werded. Wird eins davon überschrieben...

Dim Pfad, Zeile, Zeichen1(), Zeichen2() As String, ZeilenNr As Single

'-------------------------
Pfad = "C:\Bla"
'-------------------------

FileList.ReadOnly = True
FileList.Hidden = True
FileList.System = True
FileList.Archive = True

FileList.Path = Pfad

ReDim Zeichen1(0 To FileList.ListCount)
ReDim Zeichen2(0 To FileList.ListCount)


For F = 0 To FileList.ListCount - 1
Datei = Pfad + "\" + FileList.List(F)

'---- ZEILEN ZÄHLEN ----------------------------------------
Open Datei For Input As #1
ZeilenNr = 0
Do Until EOF(1)
ZeilenNr = ZeilenNr + 1 'Zählt die Zeilen
Line Input #1, Zeile
Loop
Zeile1 = ZeilenNr - 3 'Zeile1 = Zeilen vor der 3.Letzte Zeile
Zeile2 = ZeilenNr - 2 'Zeile2 = Zeilen vor der 2.Letzte Zeile
Close #1


'---- ZEILE1 ----------------------------------------------
Open Datei For Input As #1
For I = 1 To Zeile1
Line Input #1, Zeile
Next I 'Springt an Zeile1

If Zeile1 >= 0 Then
Line Input #1, Zeile 'List Zeile1 ein.
If Len(Zeile) >= 4 Then Zeichen1(F) = Mid(Zeile, (Len(Zeile) - 3), 2) 'Liest das 3.Letzte und Vorletzte Zeichen von Zeile1.
End If
Close #1


'---- ZEILE2 ----------------------------------------------
Open Datei For Input As #1
For I = 1 To Zeile2
Line Input #1, Zeile
Next I 'Springt an Zeile2

If Zeile2 >= 0 Then
Line Input #1, Zeile 'Liest Zeile1 ein.
If Len(Zeile) >= 4 Then Zeichen2(F) = Mid(Zeile, (Len(Zeile) - 3), 2) 'Liest das 3.Letzte und Vorletzte Zeichen von Zeile2.
End If
Close #1
Next F


Du musst eine FileListBox mit dem Namen 'FileList' erstellen. Ich wusste nicht wie ich das Ohne dem Steuerelement machen soll. Bei dem Excel-VB musst dann wahrscheinlich ne Form anlegen!
Die beiden Zeichen von der 3.letzten Zeile werden unter Zeichen1 abgelegt und die von der vorletzten in Zeichen2. Beide Variablen haben einen Index (von 0 bis FileList.ListCount), dh. die Zeichen von der 1.Datei sind in Zeichen1(0), bzw. Zeichen2(0), die von der 2.Datei in Zeichen1(1) bzw. Zeichen2(1), usw...

__________________
Grüßle, Medi

Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von Medusa: 22.04.2002 15:47.

22.04.2002 14:04 Medusa ist offline E-Mail an Medusa senden Beiträge von Medusa suchen
pmeyer pmeyer ist männlich
Aufsteiger


Dabei seit: 05.02.2002
Beiträge: 65
Herkunft: Melle bei Osnabrück

Themenstarter Thema begonnen von pmeyer
      Zum Anfang der Seite springen

Erstmal vielen Dank, das hat geklappt.

Zwar nicht mit VBA weil es dort keine FileListBox gibt, oder zumindest habe ich keine gefunden, aber mit VB.

Jetzt müßte ich noch wissen, wie man die Daten zurück gibt.

Ich schätze mal direkt nach Excel geht nicht, aber in eine Textdatei die ich hinterher von Hand in Excel importiere???

Wenn ja wie? Und wenn nein wie anders?
27.04.2002 19:56 pmeyer ist offline E-Mail an pmeyer senden Beiträge von pmeyer suchen
Medusa Medusa ist männlich
Senior Member


images/avatars/avatar-252.gif

Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...

      Zum Anfang der Seite springen

Hi,
In ne Textdatei is gar kein Problem:

Open "C:\zeichen.txt" For Output As #1
Print #1, "Zeichen 1:"
For I = 0 To FileList.ListCount
Print #1, Zeichen1(I)
Next I
Print #1, ""
Print #1, ""
Print #1, ""
Print #1, "Zeichen 2:"
For I = 0 To FileList.ListCount
Print #1, Zeichen2(I)
Next I
Close #1



Ich weiß leider net, wie sich das ganze ohne Filelistbox machen lässt. Und hab auch kein Plan, wie man das in excel direkt importieren kann (aber es geht irgendwie großes Grinsen )

__________________
Grüßle, Medi
28.04.2002 16:34 Medusa ist offline E-Mail an Medusa senden Beiträge von Medusa suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » VBA Daten auslesen

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH