Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 14981 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD 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 360, 3ds Max a s dalšími CAD 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 Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  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
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
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)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
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
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
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)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
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
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
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)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
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
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
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)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
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 13484:Víceřádkové indexované poznámky v Revitu.
Tip 11471:Plovoucí přechodnice v průběhu trasy v Civil 3D.
Tip 11429:Bezpečnostní nastavení spouštění iLogic pravidel.
Tip 8709:Jak vytvářet a používat fragmenty ve funkci iLogic.
Tip 13859:Jaký postprocesor Fusion 360 použít pro router Lupa (LUPA-CNC)?


 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,781 sekund.