Thema Datum  Von Nutzer Rating
Antwort
Rot Dateien laden
17.10.2008 12:31:58 carsten
NotSolved
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:
carsten
Datum:
17.10.2008 12:31:58
Views:
1965
Rating: Antwort:
  Ja
Thema:
Dateien laden
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
Rot Dateien laden
17.10.2008 12:31:58 carsten
NotSolved
18.10.2008 11:48:03 Holger
NotSolved
20.10.2008 13:04:53 carsten
NotSolved
20.10.2008 14:23:25 carsten
NotSolved