Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

.dbf mir mehr als 65536 Zeilen

.dbf mir mehr als 65536 Zeilen
01.06.2004 15:59:35
Ronny
Tach zusammen,
Ich habe da ein Problem mit einer .dbf Datei, diese wir von einem Programm jeden Tag um ca. 200 Zeilen erweitert. In den letzten 3 Jahren ist diese über 65536 Zeilen angewachsen. Da mein VBA nicht so toll ist bitte ich euch um ne kleine Hilfe. Veileicht hat einer schon so ein Programm oder könnte eins für mich schreiben wenn er Zeit hat.?
P.S. Das untenstehende Beispiel hat keine 65536 Zeilen
Vielen Dank
mfg Ronny Heigenhauser
https://www.herber.de/bbs/user/7005.xls

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .dbf mir mehr als 65536 Zeilen
01.06.2004 18:48:32
Reinhard
Hallo Ronny,
mir ist nicht klar was für ein Makro o.ä. du eigentlich möchtest.
Gruß
Reinhard
AW: .dbf mir mehr als 65536 Zeilen
02.06.2004 09:09:31
Ronny
Tach Reinhard,
ja eigentlich brauch ich nur eins, das mir die große Datei mit über 65536 Zeilen auf zwei Tabellenblätter aufteilt.
mfg Ronny Heigenhauser
AW: .dbf mir mehr als 65536 Zeilen
02.06.2004 14:28:09
tomtom
Hallo Reinhard
Anbei ein Sheet das ich mir aus verschiedenen guten Beiträgen aus diesem Forum zusammengebastelt habe.
Dies sollte eigentlich deine Probleme lösen.
https://www.herber.de/bbs/user/7040.xls
PS: bigfile.txt ist eingeneriertes file in der Art:
1
2
3
4
5
...
bigfile2.txt hat weitere felder
specialfile sieht so aus:
00234|4532|Dies ist der Text #
00235|3452|Nochmehr Text #
00236|6345|Und so Weiter #

Grüsse
tomtom
Anzeige
AW: .dbf mir mehr als 65536 Zeilen
02.06.2004 16:07:04
Ronny
Hi tomtom,
danke für die schnelle Hilfe. Aber leider funktioniert dein Prog nicht ganz so wie ich es bräuchte. Ich muss .dbf Dateien einlesen. Aber nochmal Danke
Als .txt sehen die Dinger so aus.
https://www.herber.de/bbs/user/7042.txt
Uhrzeit einlesen klappt nicht?
02.06.2004 20:26:27
Reinhard
Hallo Ronny,
probier mal https://www.herber.de/bbs/user/7053.xls
vorher https://www.herber.de/bbs/user/7042.txt in 7042.dbf umbenennen und ins Verzeichnis c:\temp abspeichern
allerdings klappt das Einlesen der Uhrzeit (Spalte C)nicht, die 2 Ziffern nach dem Doppelpunkt werden nicht erkannt?
Also der Eintrag in der 7042.dbf lautet z.B.
175069502003041516:30 24796500.000 2093096.000 1010.000 ....
Die "30" hinter dem Doppelpunkt wird nicht eingelesen, siehe Makrocode, Mid(wert, 20, 2) ist leer?!
Gruß
Reinhard

Sub lese()
Dim satz As String
Dim wert As Variant
Dim pos As Long
Close
Open "c:\temp\7042.dbf" For Input As #1
Input #1, satz
pos = 65537
While Not EOF(1)
If pos = 65537 Then
pos = 2
Sheets.Add after:=Worksheets(Worksheets.Count)
Columns("A:A").NumberFormat = "@"
Columns("B:B").NumberFormat = "m/d/yy"
Columns("C:C").NumberFormat = "h:mm"
Columns("D:J").NumberFormat = "0.000"
End If
Input #1, wert
Cells(pos, 1) = Left(wert, 11)
Cells(pos, 2) = Mid(wert, 12, 5)
Cells(pos, 3) = Mid(wert, 17, 2) & ":" & Mid(wert, 20, 2)
For a = 4 To 10
Input #1, wert
Cells(pos, a) = wert
Next a
pos = pos + 1
Wend
Close #1
End Sub

Anzeige
AW: Uhrzeit einlesen klappt nicht?
04.06.2004 14:46:43
tomtom
Hallo Ronny, Reinhard
Reinhard: gute Arbeit!
Habe dein Beispiel nochmal etwas ausgebaut, damit nun die Uhrzeit auch eingelesen wird...

Sub lese_test()
'mit diesem beispiel werden die minuten in spalte C auch eingelesen !
Dim satz As String
Dim wert As Variant
Dim zeile As Long
Dim spos As Integer 'satzposition
Dim slaenge As Integer 'satzlänge
Dim p As Integer 'feldposition
Dim x As Integer 'feldlänge
Dim recanz As Integer 'recordzähler
Dim pfad As String
pfad = ActiveWorkbook.Path
Close
Open pfad & "\filename.dbf" For Input As #1
'file öffnen
Input #1, satz
slaenge = Len(satz)
zeile = 65537
spos = 0
recanz = 0
p = 1
While Not EOF(1)
'daten einlesen
Input #1, satz
'satzlänge feststellen
slaenge = Len(satz)
'loop solange bis satz abgearbeitet ist
While Not spos > slaenge
'spalten formatieren
If zeile = 65537 Then
zeile = 2
Sheets.Add after:=Worksheets(Worksheets.Count)
Columns("A:A").NumberFormat = "@"
Columns("B:B").NumberFormat = "m/d/yy"
Columns("C:C").NumberFormat = "h:mm"
Columns("D:J").NumberFormat = "0.000"
End If
'daten verteilen
x = 11
'feld 1
Cells(zeile, 1) = Mid(satz, p, x)
p = p + x
x = 5
'feld 2
Cells(zeile, 2) = Mid(satz, p, x)
p = p + x
x = 5
'feld 3
Cells(zeile, 3) = Mid(satz, p, x)
'feld 4-10
For a = 4 To 10
p = p + x
x = 14
Cells(zeile, a) = Mid(satz, p, x)
Next a
'filler überspringen
p = p + x + 5
'recordzähler hochzählen
recanz = recanz + 1
'zeile hochzählen
zeile = zeile + 1
'satzposition hochzählen
spos = spos + 124
'nächster record
Wend
MsgBox "Ende bei Record-Anzahl " & recanz & " und Satzposition " & spos
Wend
Close #1
End Sub


Grüsse tomtom
Anzeige

76 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige