ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Přes 123.500 registrovaných u nás, celkem 1.133.000 registrovaných (CZ+EN). Tipy pro AutoCAD 2027, pro Inventor 2027 a pro Revit 2027. Nový Kalkulátor nosníků, Inženýrský kalkulátor, Spirograf generátor a Regresní křivky v sekci Převodníky. Kompletní příkazy a proměnné AutoCADu 2027.
Autodesk Civil 3D 2027
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na emea.support.arkance.world
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoiLogic - jak najít konec textového souboru

 Odpovědět Odpovědět archiv
Autor
Kubeczka Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD 2018, Inventor 2018
Stav: Offline
Bodů: 141
Přímý odkaz na tuto zprávu Téma: iLogic - jak najít konec textového souboru
    Zasláno: 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")
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
řešení Autodesk
Stav: Offline
Bodů: 22234
Přímý odkaz na tuto zprávu Zasláno: 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)
LinkedIn, Autodesk Expert Elite
Zpět nahoru
Kubeczka Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD 2018, Inventor 2018
Stav: Offline
Bodů: 141
Přímý odkaz na tuto zprávu Zasláno: 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?
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
řešení Autodesk
Stav: Offline
Bodů: 22234
Přímý odkaz na tuto zprávu Zasláno: 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)
LinkedIn, Autodesk Expert Elite
Zpět nahoru
Kubeczka Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD 2018, Inventor 2018
Stav: Offline
Bodů: 141
Přímý odkaz na tuto zprávu Zasláno: 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
Zpět nahoru
Kubeczka Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD 2018, Inventor 2018
Stav: Offline
Bodů: 141
Přímý odkaz na tuto zprávu Zasláno: 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ů
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
řešení Autodesk
Stav: Offline
Bodů: 22234
Přímý odkaz na tuto zprávu Zasláno: 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)
LinkedIn, Autodesk Expert Elite
Zpět nahoru
Kubeczka Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD 2018, Inventor 2018
Stav: Offline
Bodů: 141
Přímý odkaz na tuto zprávu Zasláno: 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
řešení Autodesk
Stav: Offline
Bodů: 22234
Přímý odkaz na tuto zprávu Zasláno: 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)
LinkedIn, Autodesk Expert Elite
Zpět nahoru
Kubeczka Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD 2018, Inventor 2018
Stav: Offline
Bodů: 141
Přímý odkaz na tuto zprávu Zasláno: 21.kvě.2021 v 10:58
Děkuji za dobré rady. Funguje to skvěle.
Zdravím
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 11667:VIPBarevné zvýraznění referenčních součástí v sestavě Inventoru (několik možností).
Tip 14974:Bloky kódu pro iLogic - vizuální programování v Inventoru 2027
Tip 11471:Plovoucí přechodnice v průběhu trasy v Civil 3D.
Tip 13484:Víceřádkové indexované poznámky v Revitu.
Tip 11429:Bezpečnostní nastavení spouštění iLogic pravidel.
Tip 8709:Jak vytvářet a používat fragmenty ve funkci iLogic.


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,371 sekund.