tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
766
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Lautsprecher Lautsprecher ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    246
    Hallo,
    ich über gerade ein wenig verschiedene Arten von Einlesemöglichkeiten in VB.
    Gerade möchte ich eine Textdatei direkt in Variablen einlesen!
    Hier folgender Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    Private Sub Command1_Click()
    'On Error GoTo Fehler
    Dim Text As String
    Dim Min As Long
    Dim Text2 As String
    Dim U As Long
    Dim file As Integer
     
    file = FreeFile
     
    Open "C:\Textdatei_in_Variable_einlesen.txt" For Input As #1
       
       Do While Not EOF(1)
       Input #1, Text, Min     
     
    Text1.Text = Text & " " & Min
    Loop
    Msgbox Min
    Close file
     
    'Fehler: MsgBox "Irgendwas stimmt nicht"
    End Sub

    in meiner Datei steht:
    Christkind
    12
    Nikolaus
    13

    Wenn ich die Daten so in die Datei schreibe funktioniert alles soweit

    wenn aber drin steht:
    Christkind 12
    Nikolaus 13

    gibt es die Ausgabe in der Textbox: Christkind 12 0 und dann kommt eine Fehlermeldung
    Lauftzeitfehler 62 Einlesen nach dem Dateiende...
    Warum ist das so?

    wenn ich die beiden Werte gleich hinter einander schreibe:
    Christkind 12 Nikolaus 13
    kommt gleich die Fehlermeldung Einlesen nach dem Dateiende..
    -> Warum muss mindestens ein Zeichen in der nächsten Zeile stehen damit das Auslesen wieder funktioniert?
    -> dann wird aber das Zeichen in der nächsten Zeile auch noch mit ausgegeben

    Und wann benötigt man dann eingentlich bei der Input-Anweisung eine Liste an Variablen

    Input #1, Var1, Var2, Var3, Var4, Var5.........

    Wenn das Auslesen von
    Christkind 12 Nikolaus 13

    schon mit einer Variablen
    Input #1, Text
    funktioniert. Meine andere Variable Min wird nämlich gar nicht befüllt
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Das Problem ist, das Input # wenn es einen String einliest immer die komplette Zeile einliest, außer der Text in Anführungszeichen eingeschlossen ist.

    D.h. wenn du alle Daten auf eine Zeile schreibst, wird zuerst die komplette Zeile in den String text eingelesen und dann erst wird versucht noch eine Zahl einzulesen - was natürlich schief geht.

    Du solltest diese Dateien immer mit dem Befehl write# erstellen - oder wenn du es manuell machst darauf achten alle Strings in Anführungszeichen zu setzen.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Lautsprecher Lautsprecher ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    246
    Hi,
    alles klar! Danke Dir, das bringt mich schon viel weiter

    Grüße
     

  4. #4
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Die Funktion FreeFile liefert eine freie Dateinummer zurück.
    Diese wird benötigt, um die richtige Datei anzusprechen.

    Also solltest du in deinem Code statt #1 besser #file verwenden, sonst bekommst du spätestens ein Problem, wenn Du mehrere Dateien gleichzeitig öffnest.
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

Ähnliche Themen

  1. Textdatei (utf-8) einlesen, probleme mit vcl komponenten
    Von xFile im Forum Borland CBuilder und VCL
    Antworten: 9
    Letzter Beitrag: 27.01.11, 11:20
  2. Antworten: 3
    Letzter Beitrag: 03.07.09, 11:43
  3. Problem beim Einlesen von Textdatei mit UTF-8
    Von DarthShader im Forum Java
    Antworten: 7
    Letzter Beitrag: 26.03.08, 08:51
  4. Variable speichern und beim nächsten Start wieder einlesen
    Von MorDuwath im Forum Borland CBuilder und VCL
    Antworten: 4
    Letzter Beitrag: 13.10.05, 12:00
  5. Antworten: 11
    Letzter Beitrag: 25.10.04, 11:45