Vytisknout stránku | Zavřít okno

iLogic - jak najít konec textového souboru

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=32038
Datum vytištění: 10.kvě.2026 v 15:30


Téma: iLogic - jak najít konec textového souboru
Odeslal: Kubeczka
Předmět: iLogic - jak najít konec textového souboru
Datum odeslání: 20.kvě.2021 v 09:47

Chci číst data z textového souboru, data jsou uložena po řádcích. Potřebuji nastavit smyčku While tak, aby se zastavila na konci textového souboru.
Jak to provést?

Zde přikládám svůj kód:


'***********************************************************************************************************
oRead = System.IO.File.OpenText("D:\Inventor\Databaze\P.txt")
'***********************************************************************************************************
MessageBox.Show("Soubor otevřen", "Title")
'***********************************************************************************************************
Dim oList As New ArrayList
Dim Radek As String

i = 0
Radek = oRead.ReadLine
MessageBox.Show(Radek, "Položka seznamu")
oList.Add(Radek)

While Not EOF    ' ???
	Radek = oRead.ReadLine
	MessageBox.Show(Radek, "Položka seznamu")
	oList.Add(Radek)
End While

'***********************************************************************************************************
oRead.Close()
'***********************************************************************************************************
MessageBox.Show("Soubor uzavřen", "Title")



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 20.kvě.2021 v 10:06
Těch možností je více. Buď čtete přes klasické Open file a kontrolujete EOF(), nebo pomocí StreamReader či OpenText a kontrolujete, zda načtený řádek něco vrátil - tedy zda je 'null', resp. není 'Nothing'.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Kubeczka
Datum odeslání: 20.kvě.2021 v 10:20
Děkuji.
Můžete uvést příklady pro daná otevření souboru a následné testování konce textového souboru?


Odeslal: Vladimír Michl
Datum odeslání: 20.kvě.2021 v 11:55
Třeba tyto dvě možnosti:

oFile = "C:\Temp\P.txt"
oRead = System.IO.File.OpenText(oFile)
ContentF = oRead.ReadToEnd()
oRead.Close()

'create aray from text info
oSplit = Split(ContentF, vbCrLf)

For Each wrd In oSplit
 MessageBox.Show(wrd)
Next

'----------------------- NEBO ---------------------------

oRead = System.IO.File.OpenText(oFile)
Dim oList As New ArrayList
Dim Radek As String

Do
    Radek = oRead.ReadLine()
    If Not Radek Is Nothing Then
	MessageBox.Show(Radek)
        oList.Add(Radek)
    End If
Loop Until Radek Is Nothing
oRead.Close()


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Kubeczka
Datum odeslání: 20.kvě.2021 v 13:09
Děkuji mockrát.
Mezitím jsem si vyzkoušel testovat konec souboru na prázdný řádek.
Vaše příklady rád vyzkouším.
S pozdravem


Odeslal: Kubeczka
Datum odeslání: 21.kvě.2021 v 08:16
Pane Michl, mám ještě jeden problém:

Pokud se v textovém souboru nacházejí znaky s českou diakritikou, pak při přečtení dojde ke zmršení těchto znaků a místo nich se objeví kosočtverec s otazníkem, např. D�l�c�

Jak na tuhle češtinu?
Připomíná mi to používání české diakritiky v názvech adresářů a souborů.
Vyhýbám se tomu jak čert kříži, ale někdy to nejde. Např. při tvorbě bat a cmd souborů


Odeslal: Vladimír Michl
Datum odeslání: 21.kvě.2021 v 09:26
V 8bitovém ANSI kódování textového souboru by se to asi muselo číst přes StreamReader, ale tyhle metody čtení očekávají univerzální kódování UTF, takže zkuste soubor přeuložit v Unicode. To je jistota.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Kubeczka
Datum odeslání: 21.kvě.2021 v 10:11
Děkuji za radu. Tohle jsem zatím nikdy neřešil. Můžete mi poradit, jak provést toto přeuložení. Děkuji


Odeslal: Vladimír Michl
Datum odeslání: 21.kvě.2021 v 10:35
Používám Notepad++ (Formát > Konvertovat do UTF-8 bez BOM), ale jde i v obyčejném Notepadu - Uložit jako, UTF-8.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Kubeczka
Datum odeslání: 21.kvě.2021 v 10:58
Děkuji za dobré rady. Funguje to skvěle.
Zdravím



Vytisknout stránku | Zavřít okno