Muchaszewski Opublikowano 2 Października 2010 Udostępnij Opublikowano 2 Października 2010 Witam. Mam pytanie. Jak przeszukać plik txt, w moim przypadku słownik litera po literze. Bardziej szczegółowo. Wpisuję że słowo ma się składać z 6 liter, a litery to 'K' pierwsza i 'k' ostatnia mniej więcej K****k. I nie wiem nawet jak zacząć żeby mi przeszukał 2.5 miliona słów i pokazał wszystkie słowa pokrywające się z tym wyżej :D Wydajność takiego systemu mnie nie interesuje. Może się szukać nawet cały dzień ale musi myć sprawny. Wszystkie realne propozycje i działający kod mile widziane :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 2 Października 2010 Udostępnij Opublikowano 2 Października 2010 GML //wyrazy w słowniku powinny byc oddzielane spacja var a,plik,linia,wyraz,znak,szukaj,dlugosc,lit1,lit2; a = ds_list_create() plik = file_text_open_read('tekst.txt') //tekst.txt - plik przeszukiwany linia = '' wyraz = '' znak = '' szukaj = 0 dlugosc = 6 //dlugosc wyrazu lit1 = 'K' //lit1 lit2 = 'k' //lit2 while(!file_text_eof(plik)) { linia = file_text_read_string(plik) file_text_readln(plik) for(i = 1; i <= string_length(linia)+1; i += 1) { znak = string_char_at(linia,i) if(znak = lit1) { szukaj = 1 wyraz = lit1 } else if(znak = lit2)&&(szukaj = 1) { if(string_char_at(linia,i+1) = ' ')||(!ord(string_char_at(linia,i+1))) { wyraz += lit2 if(string_length(wyraz) = dlugosc) ds_list_add(a,wyraz) wyraz = '' } } else if(znak != ' ')&&(znak != ' ') { wyraz += znak } else { wyraz = '' szukaj = 0 } } linia = '' znak = '' wyraz = '' } file_text_close(plik) for(i = 0; i < ds_list_size(a); i += 1) znak += ds_list_find_value(a,i)+' ' show_message(znak) Prawda, jakie to proste? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muchaszewski Opublikowano 3 Października 2010 Autor Udostępnij Opublikowano 3 Października 2010 Masz racje :P Dzięki ZAMYKAM Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi