![]() |
Chmm zamysł z filozofia działania mialem mniej wiecej dobry wg Twojego :D
Z charami kombinowałem problem u mnie był bodaj z tym /while not eof/ bo to mi dalej nie działa, przepisałem Twojego /for/ i teraz wszystko gra :) poprawione: Kod:
//--------------------------------------------------------------------Dzieki :) |
Tak mnie to zaciekawilo ze az delphi zainstalowalem...napisalem takie cos i chodzi bez zajakniecia (z while not eof tez). Oczywiscie pominalem sprawdzanie bledow.
(Delphi7 Personal): Kod:
procedure append; |
Mo***380;e co***347; Ci si***281; przyda:
http://4programmers.net/Turbo_Pascal...%B3w_w_Pascalu http://4programmers.net/Turbo_Pascal/Pliki |
Error: Type mismatch ||
echh jutro belfra pom***281;cz***281; |
wynika z tego ze text to nie file ... :/
a jak dasz oba na "file of char"? |
no w***322;a***347;nie teraz nie krzyczy, poprostu nie przepisuje
jak dam oba na text; to wywala byka: Error: Incopatible type of arg no. 1: Got text, expected file. |
wlasnie - typ drugiego pliku. oba chyba powinny byc text. W tym wypadku kompilator oczekuje ze bedziesz zapisywac wartosc typu film_r, a ty przepisujesz char.
btw a kompilator nic nie krzyczy? "char variable expected" czy cos w tym stylu? |
no w***322;a***347;nie narazie nie mam poj***281;cia jak to ma nawet wygl***261;da***263;.
@REi piszesz o typie "tmp:file of...;" ? @sobrus tak owszem tylko niech to cho***263; w jakiej***347; jednej kombinacji zadzia***322;a to to posprz***261;tam :) |
a dlaczego dla kazdego jednego bajtu pliku wejsciowego otwierac i zamykac plik wyjsciowy? lepiej zrobic to raz przed petla.
|
czy tmp nie powinno byc zmienna plikowa? o.0 dawno pascalem sie nie bawilem :D
|
Chmm a kto mi wytłumaczy co tu jest źle...
Miałem tutaj zamiar skopiować zawartość tymczasowego pliku 'filmy.tmp' do 'filmy.txt' nie nadpisujac tego drugiego (poprostu dopisać)... Kod:
//-------------------------------------------------------------------- |
taa wiem goto jest złe właśnie dlatego pozbyłem sie go tylko zapomnialem labele wyciac :)
znalazłem jakiś super wypasiony program i ma w skrypcie wszystkie informacje jakie mi potrzeba, ma coś koło ~400 linijek ale go sobie przerobię ;) |
program baza_filmow;
uses crt,dos; type film=record tytul: string[20]; gatunek: string[15]; rok: integer; cena: integer; czas: integer; end; var i,j: byte; x1,y1,j1: byte; klawisz: char; baza: film; plik: file of film; plik2: file of film; nazwa_pliku: string[12]; nazwa: string[12]; f: SearchRec; procedure opcja5; var nr_rekordu: byte; i: byte; baza2: film; begin clrscr; wersja_programu; textbackground(0); textcolor(7); gotoxy(1,1); assign(plik,nazwa_pliku); reset(plik); write('Wprowad***171; nr rekordu kt˘ry chcesz zmodyfikowa***8224; ([0] - wyj***732;cie): '); readln(nr_rekordu); if (nr_rekordu<=filesize(plik)) and (nr_rekordu>0) then begin seek(plik,nr_rekordu-1); read(plik,baza); seek(plik,nr_rekordu-1); writeln; writeln('[000] - wybrana pozycja nie zostanie zmodyfikowana'); writeln; writeln('Tytul: ',baza.tytul); write('Nowy tytul: '); readln(baza2.tytul); if baza2.tytul<>'000' then baza.tytul:=baza2.tytul; writeln; writeln('Gatunek: ',baza.gatunek); write('Nowy gatunek: '); readln(baza2.gatunek); if baza2.gatunek<>'000' then baza.gatunek:=baza2.gatunek; writeln; writeln('Rok: ',baza.rok,' r'); write('Nowy rok: '); readln(baza2.rok); if baza2.rok<>000 then baza.rok:=baza2.rok; writeln; writeln('Cena: ',baza.cena,' PLN'); write('Nowa cena: '); readln(baza2.cena); if baza2.cena<>000 then baza.cena:=baza2.cena; writeln; writeln('Czas: ',baza.czas,' min'); write('Nowy czas: '); readln(baza2.czas); if baza2.czas<>000 then baza.czas:=baza2.czas; write(plik,baza); writeln; end; if (nr_rekordu<>0) and ((nr_rekordu>filesize(plik)) or (nr_rekordu<0)) then begin writeln; write('Baza jest pusta lub podano nr rekordu kt˘ry nie istnieje!!!'); readln; end; close(plik); end; Sensownie mozna zrobic m. in tak jak wkleilem. Jest to wycinek bazy, ktora robilem jakis czas temu. Jak bedziesz zainteresowany to moge udostepnic cala baze, ale zeby zrozumiec jej schemat dzialania bedziesz musial poswiecic troche czasu. I wystrzegaj sie uzywania instrukcji goto, instrukcja bezwarunkowa jest to najgorsza rzecz jaka moze zrobic programista w swoim programie. |
Pascal - małe pytanie: rekordy
Ilość załączników: 1
Więc tak, napisałem program w pascalu i to miały być jego zadania:
- pytać/zapisać do pliku imie/nazwisko/klasa jako rekordy - aktualizacja rekordu Menu miało być takie: 1. dodaj ucznia 2. aktualizacja 3. wyjscie W sumie nawet działa pomijajac ta aktualizacje (niebardzo wiem jak sie za to zabrać). Program może i nie jest na wysokim poziomie (moze być beznadzieja dla niektorych :D) no ale tak to wyglada jakos po miesiacu siedzenia w tym. Wiec podpowie ktos jak sensownie aktualizaować wyszukany rekord ? PS PseudoProgram w załaczniku :) PS2 label'ami w varze sie nie przejmowac zapomnialem zastosować na nich del bo udało mi sie uniknąć goto... |
| Wszystkie czasy w strefie CET. Aktualna godzina: 08:32. |
Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.