mojaSymfonia FORUM
https://forum.mix-soft.pl/

Import z pliku tekstowego do HMP
https://forum.mix-soft.pl/viewtopic.php?f=15&t=8127
Strona 1 z 1

Autor:  browser123 [ 2017-10-13, 09:08 ]
Tytuł:  Import z pliku tekstowego do HMP

Witam,

Próbuję zaimportować do bufora sprzedaży zamówienie z pliku tekstowego w którym separatorem jest |
Za pomocą polecenia wyciągam dane z kolejnych linii:
find regular "^{*}/|{*}/|{*}/|{*}/|{*}/|{*}/|{*}/|{*}/|{*}/|{*}/|{*}/|{*}$"
sNazwa = regular 1

Zakres dopuszczalny to 9.
Nie potrafię znaleźć sposobu by doczytać dane znajdujące się za 9 polem. Będę wdzięczny za pomoc.

Autor:  Mustrum [ 2017-10-13, 12:20 ]
Tytuł:  Re: Import z pliku tekstowego do HMP

Polecam w takim przypadku odczyt pól jeden po drugim i usuwanie ich w trakcie.

Coś w rodzaju:

Kod:
string sub GibCSVFieldPlz(string line, string separatorReg, int fieldNumber)
    string oldBuf = buf
    buf = line
    int ite
    string found
    while (found = find regular "?+" + separatorReg)
        ite += 1
        if ite == fieldNumber then
            GibCSVFieldPlz = found
            exit
        else
            delete found
        endif
    wend
    ite += 1
    if ite == fieldNumber then
        GibCSVFieldPlz = buf
    endif
    buf = oldBuf
endsub

string pole = GibCSVFieldPlz(linia, "/|", 10)


(Mogą być błędy, gdyż piszę z komórki.)
Można sobie też pola zapisywać na bieżąco do tablicy aby oszczędzić czas, jeżeli używasz wszystkich pól.

Autor:  rafal [ 2017-10-13, 16:16 ]
Tytuł:  Re: Import z pliku tekstowego do HMP

Czytasz po kolei

Kod:
buf="A1|A2|A3|A4|A5|A6|A7|A8|A9|A10|A11|A12|A13"
   
   while find regular "{*}[|]-"
   
      print (regular 1),lf

   wend


lub pobierasz z konkretnego pola z linii pliku

Kod:
string Sub GetElem(string sAll,int ElNum)
   int iLicz
   buf = sAll + "|"
   
   while find regular "{*}[|]-"
      iLicz += 1
      if iLicz == ElNum then GetElem = regular 1   
   wend

endsub

print GetElem("A1|A2|A3|A4|A5|A6|A7|A8|A9|A10|A11|A12|A13",4)

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/