Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-23, 09:38x



Odpowiedz w temacie  [ Posty: 17 ]  Przejdź na stronę 1, 2  Następna
regular - jak wyszukać 
Autor Wiadomość

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post Re: regular - jak wyszukać
a jakie jest pytanie?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-07-24, 16:04
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post Re: regular - jak wyszukać
pytanie nr 1
jak zamienić ciąg spacji w jedną spację?

_________________
zz


2017-07-25, 13:43
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post Re: regular - jak wyszukać
Kod:
buf = "moja              Symfonia            forum użytkowników"
while delete regular ":b++"
insert " "
move 1
wend
print buf

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-07-25, 20:25
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 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

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-07-26, 12:56
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 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

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-07-26, 12:59
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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

_________________
zz


2017-07-28, 00:46
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post Re: regular - jak wyszukać
viewtopic.php?p=20071#p20071

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-07-28, 08:27
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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

_________________
zz


2017-07-28, 11:58
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 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.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2017-09-22, 11:36
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post Re: regular - jak wyszukać
użyj [:b]# - oznacza dowolną ilość znaków białych

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2018-02-03, 14:41
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 17 ]  Przejdź na stronę 1, 2  Następna
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Potrzebny regular z numeru dokumentu

w Programowanie

Zenek N

2

3877

2022-09-16, 21:10

rafal Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 18 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

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