Mała pomoc z Turbo Pascalem

Tu możemy odpocząć od tworzenia gier i porozmawiać na inne tematy związane z komputerami.
Awatar użytkownika
Karricjusz
Posty: 54
Rejestracja: 22 lip 2012, 18:41

Mała pomoc z Turbo Pascalem

Postautor: Karricjusz » 22 wrz 2012, 22:50

Cóż, liczę, że skoro ludzie znają tu Pythona, to może znają też Turbo Pascala? :) Napisałby mi ktoś prosty programik, który z pliku tekstowego odczytywałby i wypisałby na ekranie pierwszą linię jego zawartości? Od razu zastrzegam, że jak ja próbuję napisać taki program, to zawsze mam ogromne problemy, wyskakuje wiele błędów, albo po prostu nie działa. A do tego, co próbuję skonstruować, taka operacja jest niezbędna :cry: Jedyne czego potrzebuję, to działającego wzorca, na którym mógłbym sprawdzić, czy to ja źle piszę, czy mam coś zwalone...
Obrazek

Awatar użytkownika
gumen
Posty: 44
Rejestracja: 19 lip 2012, 8:15
Lokalizacja: Mysłowice

Re: Mała pomoc z Turbo Pascalem

Postautor: gumen » 22 wrz 2012, 23:43

Kod: Zaznacz cały

VAR
f:text; a:char;

Begin
        assign(f, 'C:/file.txt');
        reset(f);

        REPEAT
                read(f, a);
                write(a);
        UNTIL EOLN(f);

        close(f);
        readln();
End.


Proszę :D Programowało się kiedyś w pascalu. Stare dobre czasy. W co do kodu. Przed pętlą repeat-until przenoszę kursor na początek pliku tekstowego za pomocą reset(f);. Nastepnie w pętli zczytuję znak i wypisuję go, powtarzam operację dopóki nie skończy się linia - EOLN. Może też być EOF - czyli end of file (koniec pliku a nie koniec linii). Ale chciałeś pierwszą linię.

Oczywiście musisz mieć plik txt w odpowiednim miejscu.
Ostatnio zmieniony 23 wrz 2012, 10:33 przez gumen, łącznie zmieniany 1 raz.

Awatar użytkownika
gumen
Posty: 44
Rejestracja: 19 lip 2012, 8:15
Lokalizacja: Mysłowice

Re: Mała pomoc z Turbo Pascalem

Postautor: gumen » 23 wrz 2012, 10:22

Jeszcze brat mi przypomniał o krótszej metodzie:

Kod: Zaznacz cały

Var
f:text; linia:string;

Begin
   Assign(f,'C:\file.txt');
      Reset(f);
      ReadLn(f,linia);
      WriteLn(linia);
   Close(f);
        Readln();
End.

Awatar użytkownika
Karricjusz
Posty: 54
Rejestracja: 22 lip 2012, 18:41

Re: Mała pomoc z Turbo Pascalem

Postautor: Karricjusz » 23 wrz 2012, 17:17

Wielkie dzięki! Już wiem, gdzie popełniłem błąd. I wygląda na to, że jestem debilem, bo po prostu przy podawaniu ścieżki używałem nie tego slasha co trzeba :oops: Może teraz zakończę ten program? :D Jeszcze raz dzięki!
Obrazek

Awatar użytkownika
gumen
Posty: 44
Rejestracja: 19 lip 2012, 8:15
Lokalizacja: Mysłowice

Re: Mała pomoc z Turbo Pascalem

Postautor: gumen » 23 wrz 2012, 18:42

No tak, jak zawsze błąd jest tam gdzie się go nie spodziewamy.

Awatar użytkownika
Karricjusz
Posty: 54
Rejestracja: 22 lip 2012, 18:41

Re: Mała pomoc z Turbo Pascalem

Postautor: Karricjusz » 23 wrz 2012, 20:37

Po rozwiązaniu jednego problemu, od razu pojawił się następny (co za niespodzianka). Otóż chcę, aby z jakiegoś wyrazu, np. "kubek", program wypisał mi pozycje litery "k". Wiem, że do tego służy komenda pos('k','kubek'); gorzej, jeśli tak jak w tym wypadku, występuje więcej niż jedna litera "k", bo potrzebuję pozycji wszystkich danych liter. Jak można się było domyśleć, robię w Turbo Pascalu grę (lol) w wisielca, więc coś takiego też jest mi, niestety, niezbędne..
Obrazek

Awatar użytkownika
gumen
Posty: 44
Rejestracja: 19 lip 2012, 8:15
Lokalizacja: Mysłowice

Re: Mała pomoc z Turbo Pascalem

Postautor: gumen » 23 wrz 2012, 20:56

ah, mała przeróbka i będzie działać :)

Kod: Zaznacz cały

VAR
f:text; a,x:char; i:longint;

BEGIN
   write('podaj szukana litere: ');
   readln(x);
   i:= 0;

   assign(f, 'C:/file.txt');
   reset(f);

   REPEAT
         read(f, a);
         if a = x then writeln(i);
         i:= i+1;
   UNTIL EOLN(f);

   close(f);
   readln();

END.


Wpisujesz szukany znak i wypisuje na ekran pozycje tego znaku z pierwszej linii pliku tekstowego.
W tym przykładzie pozycja znaku liczona jest od 0, jeśli chcesz mieć naliczanie od 1 przenieś i:= i+1 przed warunek.

Awatar użytkownika
Karricjusz
Posty: 54
Rejestracja: 22 lip 2012, 18:41

Re: Mała pomoc z Turbo Pascalem

Postautor: Karricjusz » 24 wrz 2012, 17:36

Dzięki tym radom nareszcie udało mi się dokończyć ten program :lol: Masz moje wielkie podziękowania za pomoc! Szkoda tylko, że ja nie mam z tego pisania nic oprócz własnej satysfakcji xd
Obrazek

Awatar użytkownika
gumen
Posty: 44
Rejestracja: 19 lip 2012, 8:15
Lokalizacja: Mysłowice

Re: Mała pomoc z Turbo Pascalem

Postautor: gumen » 24 wrz 2012, 20:03

Piszesz to sam dla siebie?! Czy jakieś zadanie ze szkoły :?:

Awatar użytkownika
Karricjusz
Posty: 54
Rejestracja: 22 lip 2012, 18:41

Re: Mała pomoc z Turbo Pascalem

Postautor: Karricjusz » 24 wrz 2012, 21:00

Można powiedzieć, że zrobić grę wisielca, to było moje małe marzenie jeśli chodzi o programowanie :3 Pewnie jakiś program na zaliczenie będzie, ale raczej coś koło grudnia :)
Obrazek


Wróć do „Off-Topic”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość