Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-03-28, 20:08x



Odpowiedz w temacie  [ Posty: 2 ] 
Program AMBasic 
Autor Wiadomość

Rejestracja: 2021-08-07, 11:05
Posty: 1
Post 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


2021-08-07, 11:21
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2016-06-03, 17:42
Posty: 48
Pomógł: 10
Post 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.


2021-09-09, 23:53
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 2 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Problem "debuguj program" lub "zamknij program"przy zapisach

w Programy Księgowe

aga89

1

2438

2014-03-11, 16:07

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. program Płacowy a fk

w Techniczne

agapa

5

3070

2010-08-06, 04:18

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Program zarządzania zapasami

w Ogólne

Arkadij

0

8474

2022-09-22, 14:56

Arkadij Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Program Faktura 2013.1.a

w Programy Handlowe

sugar

1

1967

2017-07-06, 23:08

szepczący Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 1 gość


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant