|
Autor |
Wiadomość |
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
regular - jak wyszukać
Witam. Mam plik tekstowy, gdzie m.in. znajdują się dane jak poniżej (rozstrzelone spacjami - bo tekst rozpoznany OCR-em)
... Zam. nabywcy : 1234/2017 ... ... wg specyfikacji:
Ilość Cena netto Wartość za 1000 sztuk netto Towar 1 Typ: ABCDE 111 x 222 500 2222,00 1111,00 Parametr: 0060/0530/0060 Przewidywany termin dostawy: 11.07.2017
i tak kilka razy
Muszę znaleźć nr zamówienia nabywcy Typ (czyli np. ABCDE) i kolejne dane 111 222 500 2222,00 1111,00
i jeszcze skojarzyć to z wysłanymi zam.wł. (czyli zam nabywcy w tekście)
myślę zrobić to tak: w pętli lecieć po ZMW i find numer w buf ale jak potem wyszukać interesujące mnie dane? (nawet nie wiem jaki znak tam jest Enterem - jak to sprawdzić)
_________________ zz
|
2017-07-21, 01:08 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
a jakie jest pytanie?
|
2017-07-24, 16:04 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
pytanie nr 1 jak zamienić ciąg spacji w jedną spację?
_________________ zz
|
2017-07-25, 13:43 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
Kod: buf = "moja Symfonia forum użytkowników" while delete regular ":b++" insert " " move 1 wend print buf
|
2017-07-25, 20:25 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
Dzięki. Co prawda wycięło mi też znaki końca linii... pyt.2. mam wrażenie, że kilka operacji na zmiennej buf 'miesza' AmBasicowi poniżej fragm. kodu - nie usuwa mi tekstu 'jakis napis' Kod: int f = open "c:\\temp\\dane.txt" for input string sLinia, sKasuj="", s0, s1, s2, s3, s4, s5, s6, s7, s8, s9
While (input #f, sLinia) != 0 buf=sLinia while delete regular ":b++" insert " " move 1 wend
message buf skasuj=Delete "jakis napis" message buf find regular "{*} {*} {*} {*} {*} {*} {*} {*} {*} {*}" //$" s0 = regular 0 s1 = regular 1 s2 = regular 2 s3 = regular 3 s4 = regular 4 s5 = regular 5 s6 = regular 6 s7 = regular 7 s8 = regular 8 s9 = regular 9 message s1 + " : " +s2+ " : " +s3+ " : " +s4+ " : " +s5+ " : " +s6+ " : " +s7
wend
plik dane.txt Kod: jakis napis zzz: aaaa 1610 x 650 400 1020,00 426,97 jakis napis zzz: bbbb 1610 x 650 400 1020,00 426,97 jakis napis zzz: cccc 1610 x 650 400 1020,00 426,97
_________________ zz
|
2017-07-26, 12:34 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
zz pisze: Dzięki. Co prawda wycięło mi też znaki końca linii...
:b kasuje wszystkie tzw białe znaki (spacje, tabulacje, entery...). Jest odpowienikiem klasy ([ \t\r\n]#) czyli kod nie kasujący enterów Kod: buf = "moja Symfonia forum użytkowników" while delete regular "([ \t]#)++" insert " " move 1 wend print buf
|
2017-07-26, 12:56 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
zz pisze: pyt.2. mam wrażenie, że kilka operacji na zmiennej buf 'miesza' AmBasicowi
poniżej fragm. kodu - nie usuwa mi tekstu 'jakis napis'
używaj delete regular
|
2017-07-26, 12:59 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
2. dzięki a jak wyszukać kolejne pliki np. *.txt bo z helpa ani z http://www.forum.mojasymfonia.pl/viewtopic.php?f=15&t=904nie mogę dojść, próbowałem Kod: string sTekst="", sPlik="" string sSciezka="C:\\temp\\" sPlik=find file sSciezka+ "*.txt" sTekst=sTekst+sPlik while sPlik find next file sTekst=sTekst+sPlik wend print sTekst
_________________ zz
|
2017-07-28, 00:46 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
|
2017-07-28, 08:27 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
_________________ zz
|
2017-07-28, 11:58 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
Jeszcze kolejna sprawa:
jak wpisać regulara na: 'jeśli nie ma czegokolwiek" (takie angielskie) bo nie może być puste pole do sprawdzenia
_________________ zz
|
2017-09-22, 11:18 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
przykład podaj.
i zmień w profilu na forum swój e-mail na aktualny to będziesz dostawał powiadomienia o odpowiedziach.
|
2017-09-22, 11:36 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
Dzięki za poradę, zaktualizowałem dane.
w tym konkretnym przypadku nie chodzi o Symfonię w systemie zgłoszeniowym OTRS muszę zamknąć zgłoszenia które mają puste pole temat, formularz filtra nie pozwala zostawić pustego pola a (podobno) można użyć wyrażeń regularnych. Więc muszę znaleźć regular na 'brak czegokolwiek' ;(
_________________ zz
|
2017-09-25, 09:43 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: regular - jak wyszukać
a jak wyszukać ciągi oddzielone wieloma spacjami czyli np.
______aaa___bbb______ccc____ddd__<enter>
(podkreślenie dałem jako spację)
próbowałem np. ^\s+{*}\s+{*}... i inne jakie znalazłem i nic z tego :(
_________________ zz
|
2018-02-02, 15:07 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: regular - jak wyszukać
użyj [:b]# - oznacza dowolną ilość znaków białych
|
2018-02-03, 14:41 |
|
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 9 gości |
|
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
|
|
|
|