Thema Datum  Von Nutzer Rating
Antwort
17.10.2008 12:31:58 carsten
NotSolved
Blau Aw:Dateien laden
18.10.2008 11:48:03 Holger
NotSolved
20.10.2008 13:04:53 carsten
NotSolved
20.10.2008 14:23:25 carsten
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
18.10.2008 11:48:03
Views:
997
Rating: Antwort:
  Ja
Thema:
Aw:Dateien laden
Hallo carsten,
bist du sicher, dass die Software des Forums nicht mal wieder Teile deines Makros verschluckt hat. Ich finde nirgendwo eine Zuweisung zur Variablem "Daten" oder eine Anweisung zum Lesen von Daten.
Ich vermute, du liest die gesamte Datei in diese Variable auf einmal ein. Das ist sicherlich unzweckmäßig, sollte aber keinen Fehler verursachen, denn Strings können, zumindestens in der Office-Version 2007, bis zu ca. 2 Milliarden Zeichen enthalten. Prüfe doch einmal, ob das auch bei deiner Version der Fall ist (Dateityp String in der VBA-Hilfe suchen).
Für den Fall, dass das nicht der Fehler ist, einige Fragen:
Deine Datei enthält also Tabulatoren (Chr(9)) und Zeilenvorschubzeichen (Chr(10)). Gibt es noch weitere Zeichen in den Zeilen, die als Datenseparator interpretiert werden können, z.B. Kommas? Stehen in jeder Zeile gleich viele Tabulatoren, also so viele, wie in der ersten Zeile?
Vielleicht zeigst du einmal eine Original Titel- und eine Origainaldatenzeile, wobei es weniger auf den Text als auf die nichtdarstellbare Sonderzeichen ankommt, so dass du diese bitte besonders kennzeichnest. Es gibt bestimmt effizientere Möglichkeiten als den Gesamtstring nach Chr(9) und chr(10) abzusuchen, wenn du nur die Anzahl der Zeilen und Spalten erfahren willst. Bevor ich aber einen Vorschlag mache, sollte ich den Dateiaufbau kennen.
Gruß
Holger

carsten schrieb am 17.10.2008 12:31:58:

hi,
ich hab ein programm geschrieben, welches eine textdatei mit messwerten lädt, und dann sowohl zeilen als auch spalten zählt(anhand der zeichen ascii 9 u 10).

funktioniert bei ner normalen textgröße auch wunderbar

nun habe ich jedoch textdateien mit einer größe von 100 MB. da versagt das programm.

meine frage: gibt es eine grenze bei der größe von dateien, die man laden kann?
oder hat jemand vielleicht ne andere idee, wo das problem liegen könnte?
ist die anweisung zum laden der datei falsch gewählt?


hier mein code:



'variablen für das reine spalten und zeilenzählen
Public ReadFile As String
Public zeichen 'zeichen im string beim zählen der zeilen und spalten
Public Länge 'ist die Länge des Gesamtstrings
Public Anzahl 'ist die Anzahl der Zeilen
Public Spalten 'ist die Anzahl der Spalten
Public Ascii 'ist der Ascii-Wert eines Zeichens
Public merkez 'ist die Stelle, an der die erste überzählige Zeile erreicht wird
Public kopfzeile As String 'ist der Kopfzeilenstring
Public daten As String

Sub Zeichenzählen()



Dim frage 'ist der Wert der Ja/Nein Frage


Anzahl = 0
Spalten = 1

ReadFile = Application.GetOpenFilename("Dateityp (*.txt; *.log; *.dat; *.asc; *.doc; *.rtf),")
If ReadFile = "Falsch" Then Exit Sub

'Die Zeilen und Spalten des Strings werden erfasst, gezählt
'und für weitere Operationen wichtige Stellen werden gespeichert

Open ReadFile For Random As #1

Do While Not EOF(1)



Länge = Len(daten)

For x = 1 To Länge
zeichen = Mid(daten, x, 1) 'der ascii wert eines jeden zeichen wird ausgewerten
Ascii = Asc(zeichen)

If Ascii = 10 Then 'wenn der ascii=10, dann newLine/ende einer zeile
Anzahl = Anzahl + 1
End If

If Ascii = 9 And Anzahl = 0 Then 'wenn ascii=9, dann tab/neue spalte ->spalten werden nur anhand der ersten zeile gezählt
Spalten = Spalten + 1
End If

If Anzahl = 65536 Then 'stelle im datenstring, an der mehr als excelzeilen erreicht werden
merkez = x
End If

If Anzahl = 0 Then 'kopfzeilenstring für die verarbeitung hinsichtlich der zeilen wird gespeichert
kopfzeile = Mid(daten, 1, x)
End If

Next x

Loop



MsgBox "Zeilenzahl ist " & Anzahl & " Spaltenzahl ist " & Spalten


UserForm1.Show 'der user entscheidet, ob er die spaltenformatierungsfkt. oder die Zeilen formatierungsfkt. nutzen möchte


End Sub

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.10.2008 12:31:58 carsten
NotSolved
Blau Aw:Dateien laden
18.10.2008 11:48:03 Holger
NotSolved
20.10.2008 13:04:53 carsten
NotSolved
20.10.2008 14:23:25 carsten
NotSolved