Newsgroup: it.comp.macintosh
Titolo: [TPascal] Reset-Rewrite: "file not found"

Salve,
come mai, in Think Pascal, non riesco mai ad aprire un file in lettura 
(reset) o in scrittura (rewrite)?
Mettendo ad esempio  reset (f,'pippo'), dove f e' di tipo text e pippo e' 
il nome esterno del file (ascii standard), quando mando in esecuzione, il 
compilatore mi da' sempre un "file not found", e nel caso che invece del 
solo 'pippo' inserisca l'intero path, mi da' un "bad name error" (-37): 
ho provato a inserire il path in vari modi, ma niente da fare, devo 
proprio stargli sulle balle :)
E' sicuro che sto sbagliando da qualche parte, ma dove?
Ciao e grazie per l'eventuale risposta.
RobyZ
--
Posted from 
mail.tin.it
 [194.243.154.49] (may be forged)
via Mailgate.ORG Server - 
http://www.mailgate.org

 E' sicuro che sto sbagliando da qualche parte, ma dove?
Credo (forse dico fregnacce) che sia perche' per il finder i path non
identificano univicamente un file: infatti possiamo avere sulla
scrivania volumi con nomi identici e cartelle all'interno con lo stesso
nome, e quindi files diversi con path identici. Quello che conta e` la
"finder file specification", un numero che identifica univocamente quel
file. E` per questo motivi che, per es. se spostiamo dei files di
FileMaker Pro correlati, quelli copiati nel nuovo posto continuano a
fare riferimento a quelli rimasti nel posto vecchio. 
Soluzione? Non so come fare -- sto avendo lo stesso problema con
Applescript: non col finder (lui mi capisce ;-) ma con ZipIt... 
-- 
Ciao,        \+----------+  "La risposta e' dentro di te...
   Vittorio --| : )    o |      ...MA E' SBAGLIATA!!!"
             /+----------+
Enciclopedia d.Fantascienza: 
http://www.fantascienza.com/edf

 solo 'pippo' inserisca l'intero path, mi da' un "bad name error" (-37)
Penso che tu stia usando la versione 4.5d4 e che quindi non abbia il
manuale; il manuale della 4.02 dice che 
   reset(f, 'pippo')
apre un file 'pippo' che deve gia' esistere (possibilmente nella stessa
cartella del tuo project). Forse (dal tuo post non si capisce bene) tu
stai cercando di creare un file 'pippo' e poi di aprirlo, ma reset non
crea il file, si limita ad aprirlo.
Spero di esserti stato d'aiuto.
Sebastiano Pilla

 Spero di esserti stato d'aiuto.
L'intervenire e' gia' molto!
Aspe', non e' che per caso sbaglio a mettere gli spazi nel path?
Nei nomi di hard disk e cartelle le parole sono separate da spazi: io nel 
path ho provato a mettere sia i nomi cosi' com'erano (percio' con spazi 
inclusi), sia con gli underscore al posto degli spazi, sia con "%" sempre 
al posto degli spazi come fa Netscape, niente da fare, grrrrrrrrr, bau, 
bau, oink, oink...........
Ciao e grazie lo stesso, RobyZ
P.S.: (un grazie anche a Vittorio B. per l'intervento nel medesimo thread).


 Ciao e grazie lo stesso, RobyZ
  Sei sicuro che il pathname del file sia corretto e che il file non sia
già aperto?
 
  se per esempio il file "pippo" si trova sulla scrivania
  del disco "Macintosh HD" il pathname sarà:
  Macintosh HD:Desktop Folder:pippo
  Ciao, Marco
  PS: la lunghezza del pathname dipende dalla posizione in cui si trova
il file, ti consiglio quindi (se già non lo fai) di non usare variabili
del tipo Str255 o simili, io ad esempio uso un Handle in modo da essere
sicuro di avere una struttura in grado di contenere pathname anche molto lunghi.

 combinazioni, etc., niente, non c'e' verso: File not found
Non puoi utilizzare Reset e Rewrite in ambiente Mac. Giacche' la
gestione dei file nel mac e' diversa da tutti gli altri S.O.  anche
queste funzioni differiscono. Devi basarti sul tuo manualke o sugli
esempi gia' fatti. Se stai studiando il Pascal per un esame e vuoi
provare i programmini di gestione file e' sufficente consegnarli nelle
mani di TurboLercioPascal.
Ciao, David
-- 
  David Sebastio    -    
seba...@joynet.it
PGP Key Available -       IEEE Student Branch Bari    
 
http://www.poliba.it/IEEESB/

 Non puoi utilizzare Reset e Rewrite in ambiente Mac.
Invece sì che puoi: le implementazioni di libreria di Reset, Rewrite (in
Pascal), di cin, cout (C++), fseek, fopen (C) si appoggiano alle
funzioni native del Toolbox Macintosh. Quello che non è il caso di fare
è mescolarle, cioè usare nelle stesse routines fopen e FSWrite (ad
esempio).
Sebastiano Pilla

 Ciao, David
Eccome se puoi eccoti la documentazione di Reset direttamente da QuickView
ANS Pascal 
The Reset procedure opens an existing file for sequential read-only
access or "rewinds" an open file so that its window variable contains
the first logical record.
The parameter f is a variable reference that refers to a file variable.
The parameter filename is an optional expression with a string value. If
filename is given, the file should not already be open. 
If filename is not given and the file, f, is not open, a temporary file
is created and opened.
If filename is not given and the file is already open, the file is
"rewound." The file must have been originally opened with Open or Reset.
If the file was opened with Open, it now becomes read-only.
The value of filename, if used, must be a valid file pathname.
Notice that Reset preserves the contents of an existing file, unlike
Rewrite, which erases the current contents of any file on which it is used.
An error occurs and IOResult returns a non-zero value if there is no
existing external file with the name specified by filename.
After Reset(f [, filename]) is executed EOF(f ) is TRUE if the file is
empty. Otherwise, EOF(f ) is FALSE. Also, the current file position is
the first logical record of the file (logical record number 0), and the
file window variable f^ contains the value of that logical record unless
EOF(f ) is TRUE, in which case the value of f^ is undefined.
MPW Pascal 
The Reset procedure opens an existing file for sequential read-only
access or "rewinds" an open file so that its window variable contains
the first logical record.
The parameter f is a variable reference that refers to a file variable.
The parameter filename is an optional expression with a string value. If
filename is given, the file should not already be open. If filename is
not given, the file must be open.
The value of filename, if used, must be a valid file pathname.
The statement Reset(f ), when the file specified by f is already open,
causes the file to be "rewound." The file must have been originally
opened with Open or Reset. If the file was opened with Open, it now
becomes read-only.
Notice that Reset preserves the contents of an existing file, unlike
Rewrite, which erases the current contents of any file on which it is used.
An error occurs and IOResult returns a non-zero value if there is no
existing external file with the name specified by filename.
After Reset(f [, filename]) is executed EOF(f ) is TRUE if the file is
empty. Otherwise, EOF(f ) is FALSE. Also, the current file position is
the first logical record of the file (logical record number 0), and the
file window variable f^ contains the value of that logical record unless
EOF(f ) is TRUE, in which case the value of f^ is undefined.
Turbo Pascal 
Reset opens an existing file. Parameter f is a text, structured, or
untyped file. The type of access to the file is specified with the
previously-set value of FileMode . By default, file access is read/write.
The optional blockSize parameter can be used only with untyped files.
This parameter specifies the record size to use for reading and writing
with BlockRead  or BlockWrite . The default value is 128 bytes.
Ciao, Marco

 path fosse una cosa naturale: bene, dopo essermi arrovellato inutilmente
Bestiale: come si fa a usare il Mac e non saperlo?!?
(se noti, e` l'unico carattere "visibile" che non puoi usare in un nome
di file).


 Bestiale: come si fa a usare il Mac e non saperlo?!?
Sapevo che i due punti non si possono usare nei nomi di file e cartelle, 
ma non avevo idea che bisognasse usare proprio loro per il path e penso 
che non sia cosi' scontato (soprattutto senza nessun manuale), visto che 
dopo aver menzionato nei miei post tutti i caratteri provati per il path, 
l'unico che abbia suggerito i due punti (lasciando in pace la "finder 
file specification" :) ) e' stato Marco.......  ;)
Ciao e auguri da RobyZ a tutta icm.
