VBA problém s čítaním údajov   otázka

VB6/VBA

Takto ked je vstupny subor, tak to funguje

Vstupny subor :

573277 1279999,573275 1280021,573296 1280022,573296 1280020,

Program(makro) :

Dim pole As Variant

Dim Xmax As Double

Dim Ymax As Double

Dim Xmin As Double

Dim Ymin As Double

Dim x As Double

Dim y As Double

Dim xy As Variant

Sub MinMax()

Xmin = 9999999

Ymin = 9999999

Xmax = -9999999

Ymax = -9999999

Set fso = CreateObject("Scripting.FileSystemObject")

Set txt = fso.OpenTextFile("D:\gov.txt")

soubor = txt.ReadAll

txt.Close

pole = Split(soubor, ",") 'Vytvorí jednorozmerné pole o dažke poetu riadkov podľa čiarky

For i = 0 To UBound(pole) - 1 'Cyklus od prvku y indexom 0 ay po posledný prvok

'Funkcia Ubund vráti hodnotu posledného indexu, kedze 1.prvok má index 0 tak, n-1 je pocet prvkov v poli

xy = Split(pole(i), " ") 'Rozdelí si každý prvok na x a y a tie ďalej porovnáva

If (xy(0) > Xmax) Then

Xmax = xy(0)

End If

If (xy(0) < Xmin) Then

Xmin = xy(0)

End If

If (xy(1) > Ymax) Then

Ymax = xy(1)

End If

If (xy(1) < Ymin) Then

Ymin = xy(1)

End If

Next i

MsgBox (Xmax)

MsgBox (Ymax)

MsgBox (Xmin)

MsgBox (Ymin)

End Sub

Takyto vstupny subor ale mam ja,je to export súradníc CAD programu. Pokial je to v dole uvedenom tvare,

program nevie dobre brať údaje, lebo sa nevie vysporiadať z novym riadkom(CRLF) na koni riadku, a vypisuje predef. hodnoty pretože do podmienky načíta hodnotu prázdneho riadku a potom číslo.

Rozmyslal som na tym ze by som napisal nejako , aby importovaný txt súbor prepísalo do riadku a teda vytvorilo gov2.txt , prípadne ak by to šlo jedoduchšie, že to najskôr rozdelí podla enteru (CRLF) a potom podľa medzery.

Vstupné súbory exortu CAD programu

573261.7084 1279950.8907

573295.1744 1279921.7847

573326.8874 1279944.7907

alebo

573261.7084,1279950.8907

573295.1744,1279921.7847

573326.8874,1279944.7907

alebo

573261.7084,1279950.8907,,

573295.1744,1279921.7847,,

573326.8874,1279944.7907,,

alebo

573261.7084 1279950.8907 ,

573295.1744 1279921.7847 ,

573326.8874 1279944.7907 ,

alebo

, 573261.7084 1279950.8907

, 573295.1744 1279921.7847

, 573326.8874 1279944.7907

alebo

,,573261.7084,1279950.8907

,,573295.1744,1279921.7847

,,573326.8874,1279944.7907

predpony alebo predpony môžu byť hocjaké symboly, ale medzi X a Y moze byt jedine medzera alebo čiarka,ak je medzera.

Vždy však páry súradníc ukladá pod seba.

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