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