Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Programmazione
 File in pascal
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Spike
Utente medio

spike

Città: Kakariko Prov.: Hyrule


Inserito il - 17/12/2003 : 18:07:38  Mostra Profilo  Visita l'Homepage di Spike Invia a Spike un Messaggio Privato  Rispondi Quotando
Salve ragazzi! posto qui questa domanda sul pascal...fa nulla?

Quando compilo un programma in pascal al cui interno definisco una variabile di tipo file al momento del run mi dà un errore di runtime!

anche in questo semplice programma dove inizializzo il file alla scrittura mi da un errore di runtime:


program prova;
uses wincrt;

type f = file of integer;

var a : f;

begin

rewrite(a);

end.

Devo usare percaso altre unit oltre alla wincrt!

bò sapete aiutarmi?

see you...

.: Pace Amore Empatia .. Kurt :.

.: 2 + 2 = 5 :.

Dreamhell
Utente Cool

kurt

Città: o__O Bari O__o


Inserito il - 17/12/2003 : 20:00:44  Mostra Profilo  Visita l'Homepage di Dreamhell  Clicca per vedere l'indirizzo MSN di Dreamhell Invia a Dreamhell un Messaggio Privato  Rispondi Quotando
devi usare l'istruzione assign nel corpo del main ,che appunto assegna alla variabile di tipo file da te dichiarato il percorso fisico del file.

c'è anche un secondo problema: ricordati di chiudere il file al termine del programma, nel tuo caso:

program prova;
uses wincrt;

type f = file of integer;

var a : f;

begin

ASSIGN(a,'c:\file.txt'); /* lo crei fisicamente */

rewrite(a); /* così lo inizializzi alla scrittura */

/* ..... */

close(a);

end.

cmq a breve cerchero di uppare sul sito il programma con relativa documentazione che ho portato all'esame...


Torna all'inizio della Pagina

Spike
Utente medio

spike

Città: Kakariko Prov.: Hyrule


Inserito il - 18/12/2003 : 14:56:34  Mostra Profilo  Visita l'Homepage di Spike Invia a Spike un Messaggio Privato  Rispondi Quotando
Grazie mille dreemhell sei stato chiarissimo!

Avevo dimenticato completamente l'istruzione assign!


ancora grazie! see you...

.: Pace Amore Empatia .. Kurt :.

.: 2 + 2 = 5 :.
Torna all'inizio della Pagina

Dreamhell
Utente Cool

kurt

Città: o__O Bari O__o


Inserito il - 18/12/2003 : 17:26:21  Mostra Profilo  Visita l'Homepage di Dreamhell  Clicca per vedere l'indirizzo MSN di Dreamhell Invia a Dreamhell un Messaggio Privato  Rispondi Quotando
di niente


Torna all'inizio della Pagina

MnK
Nessuno può capire


Regione: Puglia
Prov.: Bari
Città: Molfetta


Inserito il - 03/01/2004 : 12:34:32  Mostra Profilo  Visita l'Homepage di MnK  Clicca per vedere l'indirizzo MSN di MnK Invia a MnK un Messaggio Privato  Rispondi Quotando
ragazzi se a qualcuno interessa posso mettere a disposizione il mio sorgente in pascal (se ci capite qualcosa)
si tratta della gestione di una azienda usa ovviamente i file ed e' fatto con i controfiocchi...
cn tanto di gestione errori ecc..
se interessa lo metto come allegato.

La bontà è l'unico investimento che non fallisce mai.
(H. D. THOUREAU)
Ah LA PRIKKOPRAKK L'antica arte della ristorazione cinese....
Torna all'inizio della Pagina

Spike
Utente medio

spike

Città: Kakariko Prov.: Hyrule


Inserito il - 05/01/2004 : 12:29:13  Mostra Profilo  Visita l'Homepage di Spike Invia a Spike un Messaggio Privato  Rispondi Quotando
Ho un altro dubbio su pascal e file :


posto una parte del programmino:

program prova;
uses wincrt;

type name = string[30];

f = file of name;

var elenco : f;
elem,nome : name;
trovato : boolean;

begin

assign(elenco,'nomi');
checkeof := true;
rewrite(elenco);

while not(eof) do
begin
readln(elem);
write(elenco,elem);
end;



close(elenco);

writeln;writeln('digita nome da cercare');
read(nome);

end.

il programma legge delle stringhe fino a che non digito ctrl-z!

all'uscita del while passa alla lettura di un altra stringa, che mi serve nell'altra parte del programma!

il problema sta qui, il programma termina all'uscita del while ,senza darmi la possibilità di inserire la stringa che intendo cercare!

non so se sono stato chiaro!

cmq questo problema si verifica quando per uscire dal while utilizzo il controllo del EOF!

se invece per uscire dal while utilizzo un altro controllo ( ad esempio quando digito una determinata parola) allora mi permette di inserire la stringa alla fine!

davvero non so se ho reso l'idea
potete aiutarmi

see you...

.: Pace Amore Empatia .. Kurt :.

.: 2 + 2 = 5 :.
Torna all'inizio della Pagina

MnK
Nessuno può capire


Regione: Puglia
Prov.: Bari
Città: Molfetta


Inserito il - 05/01/2004 : 13:33:06  Mostra Profilo  Visita l'Homepage di MnK  Clicca per vedere l'indirizzo MSN di MnK Invia a MnK un Messaggio Privato  Rispondi Quotando
sicuramente il problema e' checkeof.sai esattamente cosa fa?

La bontà è l'unico investimento che non fallisce mai.
(H. D. THOUREAU)
Ah LA PRIKKOPRAKK L'antica arte della ristorazione cinese....
Torna all'inizio della Pagina

Dreamhell
Utente Cool

kurt

Città: o__O Bari O__o


Inserito il - 05/01/2004 : 18:04:40  Mostra Profilo  Visita l'Homepage di Dreamhell  Clicca per vedere l'indirizzo MSN di Dreamhell Invia a Dreamhell un Messaggio Privato  Rispondi Quotando
a parte il checkeof che non conosco come istruzione(è pascal standard?), la sintassi corretta per l' end of file dovrebbe essere:

while not eof(elenco)









Modificato da - Dreamhell in data
Torna all'inizio della Pagina

Spike
Utente medio

spike

Città: Kakariko Prov.: Hyrule


Inserito il - 06/01/2004 : 16:33:33  Mostra Profilo  Visita l'Homepage di Spike Invia a Spike un Messaggio Privato  Rispondi Quotando
checkeof serve ad abilitare l'eof, permette quindi di terminare la scrittura di un file premendo ctrl-z!


while not(eof) è giusta così perchè il ciclo aspetta che termina
la lettura dal file standard INPUT!
è come se stesse scritto while not(eof(input))
ma Input si può benissimo omettere!

quel while significa : mentre il file di input
(che sarebbe ciò che si digita da tastiera) non
termina ...allora esgui ecc ecc......!


Allora nessuno capisce dove è l'errore?

.: Pace Amore Empatia .. Kurt :.

.: 2 + 2 = 5 :.
Torna all'inizio della Pagina

Dreamhell
Utente Cool

kurt

Città: o__O Bari O__o


Inserito il - 06/01/2004 : 18:44:01  Mostra Profilo  Visita l'Homepage di Dreamhell  Clicca per vedere l'indirizzo MSN di Dreamhell Invia a Dreamhell un Messaggio Privato  Rispondi Quotando
grazie per avermi spiegato l'istruzione while. Dopo aver dato programmazione e linguaggi non l'avevo ancora capita...

cmq la sintassi dell'eof fatta in quel modo (file di input standard???) non l'ho mai vista.
non saprei come aiutarti ...



Modificato da - Dreamhell in data
Torna all'inizio della Pagina

Spike
Utente medio

spike

Città: Kakariko Prov.: Hyrule


Inserito il - 06/01/2004 : 19:07:54  Mostra Profilo  Visita l'Homepage di Spike Invia a Spike un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da Dreamhell

grazie per avermi spiegato l'istruzione while. Dopo aver dato programmazione e linguaggi non l'avevo ancora capita...


Scusa non avevo nessuna intenzione di spiegarti la while....figurati so benissimo che la conosci,ci mancherebbe!

cio che volevo sottolineare era il l'eof del file input (si si standard) all'interno della while!

input e autput sono in pascal dei file standard di input e output!

input prende da tastiera!
output stampa a monitor!

quando in pascal fai una write(x)....è come se ci fosse
write(output,x).

come quando scrivi un file tipizzato, in quel caso fai
write(nomefile,x);


i file standard di output e input ci sono anche in c!
hanno dei nomi diversi che ora non ricordo!

see you....

.: Pace Amore Empatia .. Kurt :.

.: 2 + 2 = 5 :.
Torna all'inizio della Pagina

Vaso
Utente giovane




Inserito il - 13/01/2004 : 18:41:15  Mostra Profilo  Visita l'Homepage di Vaso Invia a Vaso un Messaggio Privato  Rispondi Quotando
Non so come funzioni quel comando Checkeof, ma non mi sembra funzionare.
Scegli tu un terminatore, ad esempio la parola 'eof'


program prova;
uses wincrt;

type name = string[30];

var elenco : text;
elem,nome : name;

begin
assign(elenco,'c:\nomi.txt');
rewrite(elenco);
while (elem <> 'eof') do
begin
readln(elem);
if (elem <> 'eof') then
writeln(elenco,elem);
end;
close(elenco);

end.

"E questa sera nel letto metterò, qualche coperta in più perché se no,
se no avrò freddo senza averti sempre, senza averti sempre addosso..."
VASCO ROSSI
Torna all'inizio della Pagina

Dreamhell
Utente Cool

kurt

Città: o__O Bari O__o


Inserito il - 13/01/2004 : 20:34:40  Mostra Profilo  Visita l'Homepage di Dreamhell  Clicca per vedere l'indirizzo MSN di Dreamhell Invia a Dreamhell un Messaggio Privato  Rispondi Quotando
CORRECT!


Torna all'inizio della Pagina

korakor
Nuovo Utente

CUORE



Inserito il - 06/02/2004 : 23:01:13  Mostra Profilo  Visita l'Homepage di korakor Invia a korakor un Messaggio Privato  Rispondi Quotando
X MNK

Oltre alla bontà, se hai qualche altra cosa da investire, pensa all'umiltà.
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,29 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000