Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Kaburagi

[PASCAL] Plik tekstowy

Rekomendowane odpowiedzi

Witam!

Mam problem z szukaniem słów w plikach tekstowych.

Zrobiłem taki program:

 

program
      Z_FSearch;
uses
   crt,dos;
var
  plik:text;
  znak:char;
  dalej,jest:boolean;
  slowo,szukana,s:string;
  licznik,ile,i,x,t,j,wiersz:integer;


function menu:char;
begin
    clrscr;
    writeln('[Z] Zapisywanie do pliku');
    writeln('[O] Odczyt pliku');
    writeln('[K] Kasowanie pliku');
    writeln('[u] Szukanie po znaku');
    writeln('[s] Szukanie po slowie');
    writeln('[Esc] Koniec programu');
    menu:=upcase(readkey);
end;

procedure zapis;
begin
    clrscr;
    if fsearch('prog.txt','')='' then
            rewrite(plik);
            append(plik);
            dalej:=true;
            writeln('Zakoncz, koniec');
                              repeat
                                    readln(slowo);
                                    if (slowo='koniec') then
                                       dalej:=false
                                                   else
                                                       writeln(plik,slowo);

                              until not dalej;

end;
procedure odczyt;
begin
    clrscr;
    reset(plik);
                while not eof(plik) do
                      begin
                           readln(plik,slowo);
                           writeln(slowo);
                      end;
end;

procedure kasowanie;
begin
    clrscr;
    erase(plik);
    writeln('Plik zostal skasowany!');
end;

procedure znaki;
begin
    clrscr;
    writeln('Podaj znak, ktory chcesz wyszukac: ');
    znak:=readkey;
    reset(plik);
    repeat
    readln(plik,slowo);
    x:=length(slowo);
    for i:=1 to x do
    if znak=slowo[i] then
       licznik:=licznik+1;
    until eof(plik);
    writeln;
    write('Znak ',znak,' wystepuje ',licznik,' razy');

end;

procedure slowa;
begin
end;

begin
assign(plik,'prog.txt');
repeat
clrscr;
licznik:=0;
    case menu of
         'Z':
             zapis;
         'O':
             odczyt;
         'K':
             kasowanie;
         'U':
             znaki;
         'S':
             slowa;
         #27:
             begin
                  close(plik);
                  halt;
             end;
    end;
readln;
until false;
end.

 

Działa dobrze, ale pomimo tego, że zrobiłem szukanie po znaku, nie wychodzi mi szukanie po całym słowie. Zastanawiałem się trochę jak to zrobić, i jedyne dwa pomysły jakie wydały mi się realne, to odliczanie w wierszu do spacji i sprawdzanie słów przed i po, jak i rozbicie szukanego słowa na poszczególne litery i porównywać od pierwszej do ostaniej np:

 

w pliku wpisane mamy:

 

ludzie to tylko ludzie

 

szukając słowa "ludzie" znajdowało mi tylko 1 słowa, bo sprawdzało, czy istnieje w wierszu... jakieś sugestie jak zrobić by działało lub jak wcielić w życie któryś z powyższych metod?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...