Path: news.daimi.aau.dk!jlk From: jlk@daimi.aau.dk (J|rgen Lindskov Knudsen) Newsgroups: daimi.beta,daimi.dsa Subject: Re: Et program, som skriver et S på skærmen. Date: 22 Apr 1996 07:53:07 GMT Organization: DAIMI, Computer Science Dept. at Aarhus University Lines: 43 Distribution: daimi Message-ID: <4lfdt3$qgm@gjallar.daimi.aau.dk> References: Reply-To: jlknudsen@daimi.aau.dk (Jorgen Lindskov Knudsen) NNTP-Posting-Host: lithium.daimi.aau.dk Xref: news.daimi.aau.dk daimi.beta:10211 daimi.dsa:10250 In Thus spake pahe@daimi.aau.dk (Peter von der Ahe): >Hej! >Jeg har lavet et program, som kan skrive et S ud på stdout. Problemet >er bare at det skulle skrive SØREN: >ORIGIN '~beta/basiclib/current/betaenv'; >INCLUDE '~beta/basiclib/current/file'; >--PROGRAM: descriptor-- >(# T: ^Text; > aFile: @File; >do > 'testfil'->aFile.name; > aFile.openWrite; > 'SØREN'->aFile.puttext; > aFile.close; > aFile.openRead; > aFile.GetAtom->PutLine; > aFile.close; >#) >Det er dog en fejl, som umuligt kan opstå da 'Ø'->ascii.isWhiteSpace >exit'er false. Meget mystisk... ;-) Du har ret - der er en fejl i file patternet her. Men fejlen er ikke 'umulig' i den forstand, du omtaler. Du har nemlig kigget p} den 'forkerte' kode da du antog, at det havde noget at g|re med 'Ø'->ascii.isWhiteSpace. 'file' og 'text' anvender to forskellige impl. at getAtom, og det er her hunden er begravet. Grunden til de to forskellige impl. er effektivitetsovervejelser. Hvis du derfor istedet skriver: aFile.openRead; &text[]->t[]; aFile.ScanAtom(# do ch->t.put #); t[]->PutLine; aFile.close; s} virker det :-) --- jlk