Čtení dat z textového souboru   otázka

VB.NET, I/O operace

Prosím o pomoc... mám data uložená do textového souboru, vypadají asi takto:

1	4.12.2012	0:00	33.0	23.3	29.8	24.3	34.6	-0.0	0	83	57	25.2
2	4.12.2012	0:01	33.0	23.2	29.7	24.3	34.6	-0.0	0	83	57	25.2
3	4.12.2012	0:02	33.0	23.3	29.7	24.3	34.6	0.1	0	83	57	25.2
4	4.12.2012	0:03	33.0	23.2	29.7	24.3	34.6	0.0	0	83	57	25.2
5	4.12.2012	0:04	33.0	23.2	29.7	24.3	34.6	0.0	0	83	57	25.2

na každém řádku je určitý počet hodnot, řádky začínají pořadovým číslem 1....x

Pak mám kód:

If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            soubor = OpenFileDialog1.FileName
            w = New IO.StreamReader(soubor)
            While Not w.EndOfStream
                data = w.ReadLine                
            End While
            w.Close()
        End If

když krokuju While...End While, tak v proměnné data se načtou hodnoty až ze druhého řádku, tedy začínají 2...atd. První řádek se vůbec nenačte.

Prosím poraďte...zkoušel jsem kde co, načítat data i přes data=w.readline(pocitadlo), ale vždycky začne načítat až od druhého řádku.

Poradí někdo?

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dlouhodobě se mi osvědčilo:

Dim TmpStrLine As String
Dim TmpObjStreamReader = New StreamReader(OFD_Import.FileName)

  'Read the first line of text.
  TmpStrLine = TmpObjStreamReader.ReadLine
  Do While Not TmpStrLine Is Nothing

  'pozadovana akce s TmpStrLine

    TmpStrLine = TmpObjStreamReader.ReadLine
  Loop
  TmpObjStreamReader.Close()

nahlásit spamnahlásit spam 0 odpovědětodpovědět

TextFieldParser Class :

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkoušel jsem obě uvedené konstrukce, načítá bez problémů, ale až od druhého řádku. Díval jsem se i na hexa výpis textového souboru, nevidsím jediný problém.

Tak kde mohli soudruzi z NDR udělat chybu...? Je ještě nějaká jiná konstrukce?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Použijte readline navíc ještě před vstup do cyklu

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem na to přišel... ještě před cyklem jsem měl

If w.ReadLine.Length < 1 Then

tím se načetl první řádek. Omlouvám se za blbost a děkuji všem...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback