Atlantis86 Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 Pewnie pytanie wyda się banalne dla profesjonalistów, ale za nic nie mogę dojść do przyczyny...Cel jest następujący: napisać program porównujący kilka algorytmów sortowania. Mam je w poszczególnych procedurach - działających i przetestowanych. Na wejściu przyjmują dwie wartości - jedna to "ciag" (typ array[0..k], gdzie k to ilość elementów) druga to właśnie ilość elementów.Dane do posortowania mają pochodzić z pliku.No więc definiuję zmienną plik: [code=Pascal] var plik : file of ciag;OR-zl)+jhjW assign (plik, adres pliku); reset (plik); [/code]No i tutaj zaczyna się problem... Bo gdy próbuję wywołać którąś ze wspomnianych procedur ze zmienną "plik" jako pierwszym argumentem, wyskakuje mi błąd podczas kompilacji:Error: Call by var parameters have to match exactly: GKompilowane nie pod FPC. Ktoś wie co jest grane? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 jesli to delphi to powinno byc AssignFile a nie Assignpoza tym jesli zapis to rewrite a nie reset.a po trzecie probujesz zrobic pewnie odczyt/zapis na zmiennej ktora nie jest tego samego typu co wpisales w file of Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Atlantis86 Napisano Grudzień 3, 2006 Autor Zgłoś Share Napisano Grudzień 3, 2006 CYTAT(Toster @ nie, 03 gru 2006 - 17:38) <{POST_SNAPBACK}>jesli to delphi to powinno byc AssignFile a nie AssignTo Free Pascal, ale zależy mi na tym, żeby kompilowało się wstecznie na Turbo Pascalu 7.0 - wiadomo na czym osoba, do której to trafi będzie chciała to sprawdzić? ;PCYTATpozatym jesli zapis to rewrite a nie reset.Odczyt gotowego pliku, tylko odczyt... [quote] a po trzecie probojesz zrobic pewnie odczyt/zapis na zmiennej ktora nie jest tego samego typu co wpisales w file of [/quote]Może, ale ja nie mogę się dopatrzeć błędu...Tak wyglądają derklaracje: [code=Pascal] const k = 25631; type ciag = array[0..k] of integer; vaZZ[HXYYZH[OR(%uŹzŚ3$iŁŚy*ZąĆqG&6VGW&R'V&ĆW6'Bf\"6sFVvW\"OQZĆŚŁĄzŹqQąĄąŹŹ [/code]Co jest nie tak???? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 rety przeciek sam sobie na pytanie odpowiadaszw twoim przykladzie masz bublesort ktore jako pierweszy parametr przyjmuje zmienna typu ciag. a w procedurze bublesort podajesz zmienna typu file of ciag. Dlatego ci nie dziala Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Atlantis86 Napisano Grudzień 3, 2006 Autor Zgłoś Share Napisano Grudzień 3, 2006 [quote] rety przeciek sam sobie na pytanie odpowiadaszw twoim przykladzie masz bublesort ktore jako pierweszy parametr przyjmuje zmienna typu ciag. a w procedurze bublesort podajesz zmienna typu file of ciag. Dlatego ci nie dziala [/quote]Żeby tylko to było takie proste... Próbowałem w definicji procedury zmienić "ciag" na "file of ciag" - problem faktycznie został wyeliminowany, jednak na jego miejsce pojawił się nowy...A mianowicie wtedy bład pojawia się wewnątrz tej procedury, na pierwszym zapisie z użyciem "a[i]" wywala komunikat "Illegal qualifier". Wiem, że pewnie rozwiązanie jest banalne, ale ja na to wpaść nie mogę? A może jakaś prosta procedura, która będzie potrafiła przepisać całą zawartośc takiego pliku do zmiennej typu ciag? W pliku i tak nic nie ma być zapisywane, chodzi jedynie o odczyt tych danych i puszczenie ich na procedury. Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 Zrób typ: [code=Delphi] type TCiagFile = file of ciag; [/code] i użyj tego typu jako typu argumentu funkcji oraz jako typu zmiennej plik. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 jaka procedura czlowieku wez ksiazke.. 3 linijki kodu [code=Delphi] assign(plik,'plik.txt'); Reset(plik); read(plik, zmY[JN [/code] Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Atlantis86 Napisano Grudzień 3, 2006 Autor Zgłoś Share Napisano Grudzień 3, 2006 [quote] i użyj tego typu jako typu argumentu funkcji oraz jako typu zmiennej plik. [/quote]Niestety - wtedy wywala problem, gdy natknie się na "a[i]" - odwołanie do danego miejsca w tej tabeli wewnątrz procedury - wywala "Illegal Qualifier"...Najlepiej byłoby dać chyba jakąś procedurę, która przepisze zawartość pliku do zwykłej, zmiennej typu ciag... Link do komentarza Udostępnij na innych stronach More sharing options...
KaYou Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 ja proponuje cos prosciejszego . nie baw sie z plikami tylko zosataw read, readln i zrob tak:napisz program jakby mial czytac dane z klawy skompiluj;start -> uruchom : nazwa_programu.exe < wejsce.txttyle mysle ze pomoglem "(2b || !(2b)) == question" W. Shakespeare http://jakubniwa.pl - świat sztucznej inteligencji Link do komentarza Udostępnij na innych stronach More sharing options...
Wosiedem Napisano Grudzień 3, 2006 Zgłoś Share Napisano Grudzień 3, 2006 [quote] Niestety - wtedy wywala problem, gdy natknie się na "a[i]" - odwołanie do danego miejsca w tej tabeli wewnątrz procedury - wywala "Illegal Qualifier"...Najlepiej byłoby dać chyba jakąś procedurę, która przepisze zawartość pliku do zwykłej, zmiennej typu ciag... [/quote]Napisz sobie procedurę, która wczyta/zapisze z pliku strukturę "ciag"...Przeczytaj:http://www.komputery-internet.net/turbo/pliki_nietekst.phpORAZ TO: http://turbopascal.helion.pl/r-18.htm Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Grudzień 4, 2006 Zgłoś Share Napisano Grudzień 4, 2006 Dodaj [Pascal] przed nazwę tematu i zmień sam temat na bardziej opisowy i w ogóle to przydałyby Ci się znajomości podstaw programowania, bo widze że Twoja wiedza leży. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.