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.
|