mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
regular - jak wyszukać https://forum.mix-soft.pl/viewtopic.php?f=15&t=8009 |
Strona 1 z 2 |
Autor: | zz [ 2017-07-21, 01:08 ] |
Tytuł: | 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ć) |
Autor: | rafal [ 2017-07-24, 16:04 ] |
Tytuł: | Re: regular - jak wyszukać |
a jakie jest pytanie? |
Autor: | zz [ 2017-07-25, 13:43 ] |
Tytuł: | Re: regular - jak wyszukać |
pytanie nr 1 jak zamienić ciąg spacji w jedną spację? |
Autor: | rafal [ 2017-07-25, 20:25 ] |
Tytuł: | Re: regular - jak wyszukać |
Kod: buf = "moja Symfonia forum użytkowników" while delete regular ":b++" insert " " move 1 wend print buf |
Autor: | zz [ 2017-07-26, 12:34 ] |
Tytuł: | 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 |
Autor: | rafal [ 2017-07-26, 12:56 ] |
Tytuł: | 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 |
Autor: | rafal [ 2017-07-26, 12:59 ] |
Tytuł: | 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 |
Autor: | zz [ 2017-07-28, 00:46 ] |
Tytuł: | 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=904 nie 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 |
Autor: | rafal [ 2017-07-28, 08:27 ] |
Tytuł: | Re: regular - jak wyszukać |
viewtopic.php?p=20071#p20071 |
Autor: | zz [ 2017-07-28, 11:58 ] |
Tytuł: | Re: regular - jak wyszukać |
to mi nie zadziałało, natomiast działa twoje: http://www.forum.mojasymfonia.pl/viewtopic.php?f=15&t=1249 |
Autor: | zz [ 2017-09-22, 11:18 ] |
Tytuł: | 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 |
Autor: | rafal [ 2017-09-22, 11:36 ] |
Tytuł: | 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. |
Autor: | zz [ 2017-09-25, 09:43 ] |
Tytuł: | 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' ;( |
Autor: | zz [ 2018-02-02, 15:07 ] |
Tytuł: | 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 :( |
Autor: | rafal [ 2018-02-03, 14:41 ] |
Tytuł: | Re: regular - jak wyszukać |
użyj [:b]# - oznacza dowolną ilość znaków białych |
Strona 1 z 2 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |