Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

seek i readln prijavljuju incompatible file types

[es] :: Pascal / Delphi / Kylix :: seek i readln prijavljuju incompatible file types

[ Pregleda: 2874 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MoHicAn

Član broj: 43
Poruke: 1893
*.yubc.net



Profil

icon seek i readln prijavljuju incompatible file types04.03.2002. u 21:48 - pre 269 meseci
Elem evo dela kod-a

Code:

  assign(x,imefajla);
  reset(x);
  for i:=1 to linija do
   begin
    readln(x);
   end;
  while not eoln(x) do
   begin
    seek(x,pozicija);
    read(x,ch);
    write(ch);
   end;
  close(x);


E sad problem je u sledecem
kad definisem x kao x:text onda readln(x) radi (prebacuje pokazivac na novi red u fajlu x) ali zato seek ne radi i prijavljuje incompatible file types. Ali kad definisem x kao x: file of char onda mi radi seek al ne radi readln(x) i isto kaze incompatible file types ali ovaj put za readln(x). E sad jel zna neko zasto je ovo tako i ako neko zna elegantniji nacin za menjanje linije u fajlu (meni je ono sa for prvo palo na pamet al to sad i nije tolko vazno) BTW. kolko ja znam tip "text" jeste standardno ime koje je definisano sa
Code:

type
   text=file of char;


PS: ovo je probano u delphiju 5 i u turbo pascalu i isto prijavljuje i u jednom i u drugom
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
212.110.78.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: seek i readln prijavljuju incompatible file types05.03.2002. u 09:44 - pre 269 meseci
readln radi SAMO na text files

to ti je isto ko da imas
Code:

var
  x:char;
  linija:string;
........

while not eol(moj_fajl) do
  begin
  read(x,moj_fajl);
  linija:=linija+x;
  end;

a seek radi SAMO typed files !
Code:

type
  moj_tip=record
                moj_int:integer;
                moj_byte:byte;
                end;
var
   reader:moj_tip;
   read_file:file of moj_tip;
begin
   assign(read_file,imefajla); 
   reset(read_file); 
   seek(read_file,3); //prebacujes file pointer na 3-ci record fajla
   read(reader,read_file); //ucitavas 3-ci record iz fajla
   .....
end;


nadam se da sam pomoga

Gojko: a zasto code trimuje space-ove ??!?!

People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

MoHicAn

Član broj: 43
Poruke: 1893
*.yubc.net



Profil

icon Re: seek i readln prijavljuju incompatible file types06.03.2002. u 00:17 - pre 269 meseci
A jel imas onda neku zamenu za seek kad su u pitanju text fajlovi ?

Ja sam nasao kao neko resenje kad se koristi file of char. Samo malo je nabudzeno.
To bi bilo nesto tipa da imam petlju koja se vrti i pri svakom obrtu pomera pokazvac na karakter u fajlu za jedan i stavlja njegovu vrednost u promenjivu ch read(x,ch) npr i onda pri svakom okretu ide provera if ch=asc(13) {* enter ako se ne varam i posle njega moguci *} if filepos(x)+1=asc(10)

Al meni je sve to malo prenatrpano
ima li neko elegantnije resenje ?
 
Odgovor na temu

vujke
Ivan Vujić
Network administrator
Astra Telekom
Mladenovac

Član broj: 366
Poruke: 249
*.dial.InfoSky.Net



+1 Profil

icon Re: seek i readln prijavljuju incompatible file types07.03.2002. u 07:15 - pre 269 meseci
Citat:
MoHicAn:
A jel imas onda neku zamenu za seek kad su u pitanju text fajlovi ?

Ja sam nasao kao neko resenje kad se koristi file of char. Samo malo je nabudzeno.
To bi bilo nesto tipa da imam petlju koja se vrti i pri svakom obrtu pomera pokazvac na karakter u fajlu za jedan i stavlja njegovu vrednost u promenjivu ch read(x,ch) npr i onda pri svakom okretu ide provera if ch=asc(13) {* enter ako se ne varam i posle njega moguci *} if filepos(x)+1=asc(10)

Al meni je sve to malo prenatrpano
ima li neko elegantnije resenje ?


Na zalost, ako koristis text file-ove moraces to da odradis pesaka.
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
212.110.78.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: seek i readln prijavljuju incompatible file types07.03.2002. u 10:58 - pre 269 meseci
Naravno da ima boljeg reshenja

Pascal ima veoma prost pristup fajlovima, koji ogranicava programera kad
je u pitanje komplicirana struktura fajla ili kad treba da promenis samo neki
deo fajla. Ali zato tu nam je Win API, nazalost nije tako lako kao sa Pascalovih
procedura za manipuliranje za fajlovima.
TFileStream je jednostavni Stream za rad sa fajlovima sa diska, ima procedure kao Read,Seek i Write.
FileStream je jedino resenje za tvog problema.

potrazi u help fajlu File types with file I/O
ja sam radio file streamove sa standardne strukture gde znas velicinu objekta kojeg ucitavas, ali kad je u pitanju text file pitanje je dali je to ASCII ili unicode,
u ascii jedan karakter je 1byte u unicode je 2, tako da velicina objekta moze biti
jedan ili dva bajta.

peace
People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: seek i readln prijavljuju incompatible file types07.03.2002. u 14:01 - pre 269 meseci
Citat:
Riste Pejov:
Gojko: a zasto code trimuje space-ove ??!?!


Nemam bolje rešenje za sada.

<pre> tag kao i <listing> ne trimuju space-ove i imaju fixed width font, ali od jednog razmaka prave dva komada zato sto i dalje ostaju <br> tagovi na kraju svake linije koda.. isto tako ne mogu da izbacim te <br> izmedju [ code] tagova zbog nacina parsiranja kakav je trenutno..

Užas jednom rečju
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: seek i readln prijavljuju incompatible file types

[ Pregleda: 2874 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.