mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Program AMBasic https://forum.mix-soft.pl/viewtopic.php?f=15&t=10005 |
Strona 1 z 1 |
Autor: | D_a125 [ 2021-08-07, 11:21 ] |
Tytuł: | Program AMBasic |
Witam, Dostałem taki kod do przerobienia i nie mam pomysłu jak to mogę zrobić, program współpracuje z plikiem xml gdzie są podne nazwy faktur ( /EXP/, FA/, /POZ/, /T1/). Kod ma za zadanie wyszukać nazwe faktury i skopiować ją w całości do osobnego pliku. Kod: Int Numer_plikuu String zawartosc_tab(1) String pocz String konc3 String naglowek = "" String stopka = "" int licznik_wpis = 0 int licznik3 = 0 int licznik4 = 0 int licznik5 = 0 int licznik6 = 0 if (ko ==15 ) then Numer_plikuu = Open sDokumentExport For input if !Numer_plikuu Then message using "%s", "Nie udalo się otworzyć pliku" print "Nie udalo się otworzyć pliku" else licznik = 1 // ponieważ pierwsza linia zawiera nagłówek iIleLini = IleLini(sDokumentExport) Grow zawartosc_tab, iIleLini //Wpisywanie całego pliku do tablicy while ( licznik <= iIleLini) buf = "" Input # Numer_plikuu, Zawartosc zawartosc_tab(licznik) = Zawartosc licznik = licznik + 1 wend licznik = 1 //Dodawanie 29 pierwszych linii do każdego z plików while ( licznik <= 29) naglowek = naglowek + zawartosc_tab(licznik) licznik = licznik + 1 wend Print # iPlikWynikowyEXP; naglowek Print # iPlikWynikowyFA; naglowek Print # iPlikWynikowyPOZ; naglowek Print # iPlikWynikowyT1; naglowek licznik = 1 //Przeszukiwanie tablicy w poszukiwaniu odpowiednich rekordów while ( licznik <= iIleLini) pocz = zawartosc_tab(licznik) Buf = pocz konc3 = Find Regular "/<tns/:P/_2B>" If konc3 != "<tns:P_2B>" then konc3 = Find Regular "FA//" if konc3 == "FA/" then licznik_wpis = licznik-2 //Wpisywanie rekordów rdo pliku FA.xml licznik3 = licznik licznik4 = licznik+30 licznik5 = licznik while (licznik3<=licznik4) pocz = zawartosc_tab(licznik3) Buf = pocz konc3 = Find Regular "/<//tns/:Faktura/>" if konc3 == "</tns:Faktura>" then licznik6 = licznik3+2 endif licznik3 = licznik3 + 1 wend licznik3 = licznik while (licznik5<=licznik6) Print # iPlikWynikowyFA; zawartosc_tab(licznik_wpis) licznik_wpis = licznik_wpis+1 licznik5 = licznik5 +1 wend else konc3 = Find Regular "//EXP//" if konc3 == "/EXP/" then licznik_wpis = licznik-2 //Wpisywanie rekordów do pliku EXP.xml licznik3 = licznik licznik4 = licznik+30 licznik5 = licznik while (licznik3<=licznik4) pocz = zawartosc_tab(licznik3) Buf = pocz konc3 = Find Regular "/<//tns/:Faktura/>" if konc3 == "</tns:Faktura>" then licznik6 = licznik3+2 endif licznik3 = licznik3 + 1 wend licznik3 = licznik while (licznik5<=licznik6) Print # iPlikWynikowyEXP; zawartosc_tab(licznik_wpis) licznik_wpis = licznik_wpis+1 licznik5 = licznik5 + 1 wend licznik_wpis = licznik-2 else konc3 = Find Regular "//POZ//" if konc3 == "/POZ/" then licznik_wpis = licznik-2 //Wpisywanie rekordów do pliku POZ.xml licznik3 = licznik licznik4 = licznik+30 licznik5 = licznik while (licznik3<=licznik4) pocz = zawartosc_tab(licznik3) Buf = pocz konc3 = Find Regular "/<//tns/:Faktura/>" if konc3 == "</tns:Faktura>" then licznik6 = licznik3+2 endif licznik3 = licznik3 + 1 wend licznik3 = licznik while (licznik5<=licznik6) Print # iPlikWynikowyPOZ; zawartosc_tab(licznik_wpis) licznik_wpis = licznik_wpis+1 licznik5 = licznik5 +1 wend licznik_wpis = licznik-2 else konc3 = Find Regular "//T1//" if konc3 == "/T1/" then licznik_wpis = licznik-2 //Wpisywanie rekordów do pliku T1.xml licznik3 = licznik licznik4 = licznik+30 licznik5 = licznik while (licznik3<=licznik4) pocz = zawartosc_tab(licznik3) Buf = pocz konc3 = Find Regular "/<//tns/:Faktura/>" if konc3 == "</tns:Faktura>" then licznik6 = licznik3+2 endif licznik3 = licznik3 + 1 wend licznik3 = licznik while (licznik5<=licznik6) Print # iPlikWynikowyT1; zawartosc_tab(licznik_wpis) licznik_wpis = licznik_wpis+1 licznik5 = licznik5 +1 wend licznik_wpis = licznik-2 endif endif endif endif endif licznik = licznik + 1 wend stopka = "</tns:JPK>" Print # iPlikWynikowyEXP; stopka Print # iPlikWynikowyFA; stopka Print # iPlikWynikowyPOZ; stopka Print # iPlikWynikowyT1; stopka Close iPlikWynikowyEXP Close iPlikWynikowyFA Close iPlikWynikowyPOZ Close iPlikWynikowyT1 Close Numer_plikuu endif endif |
Autor: | Arek44 [ 2021-09-09, 23:53 ] |
Tytuł: | Re: Program AMBasic |
Chyba lepiej byłoby do odczytu nazw faktur wykorzystać np. Microsoft.XMLDOM skoro to plik XML i odczytać tylko pole z numerem. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |