PDA

View Full Version : turbo pascal 7.0 alle prime armi.....


skintek1
28-10-2006, 00:39
ciao a tutti,sono alle prima armi nella programmazione,sto imparando ad usare bene turbo pascal7.0,ma con questo programma è possibile vedere un codice sorgente di un programma.exe open source,e magari modificarne anche le caratteristiche???

mad_hhatter
28-10-2006, 00:56
se e' open source ti danno i sorgenti, non hai bisogno di disassemblare l'exe. ma difficilmente troverai programmi scritti in pascal

skintek1
28-10-2006, 01:09
se e' open source ti danno i sorgenti, non hai bisogno di disassemblare l'exe. ma difficilmente troverai programmi scritti in pascal


si ma se io dovessi modificare un codice sorgente di un programma devo usare per forza un compilatore,sbaglio???

perchè dici che è difficile trovare programmi scritti con turbo pascal???non è un buon programma???

k0nt3
28-10-2006, 09:56
si ma se io dovessi modificare un codice sorgente di un programma devo usare per forza un compilatore,sbaglio???

perchè dici che è difficile trovare programmi scritti con turbo pascal???non è un buon programma???
prima di tutto sono del parere che pascal è un'ottima scelta per imparare a programmare :D continua così
poi vedo che ti manca qualche concetto base... turbo pascal 7 è un IDE (Integrated Development Environment) cioè un ambiente di programmazione, mentre pascal è un linguaggio di programmazione.
l'ambiente di programmazione è in poche parole una raccolta di programmi che servono al programmatore per programmare in un certo linguaggio. i componenti fondamentali sono l'editor per scrivere il codice e il compilatore per produrre il file EXE a partire dal codice sorgente.

per rispondere alla tua domanda quindi per modificare un sorgente ti basta un editor di testo, mentre per produrre l'eseguibile del sorgente modificato ti serve il compilatore :D
comunque pascal è un linguaggio molto utile primo perchè permette di imparare in maniera facile la programmazione strutturata, secondo ha una sintassi non troppo diversa dal C in modo che passare a uno dei tanti linguaggi C-like non è traumatico e infine perchè delphi è praticamente pascal orientato a oggetti ed è un linguaggio molto usato anche in ambito professionale.

skintek1
28-10-2006, 12:24
il pascal è un linguaggio didattico, che si usa per imparare le basi della programmazione strutturata... i programmi "veri" difficilmente vengono scritti in pascal, si usano altri linguaggi, come c/c++/java ecc...


ma un buon software per programmare in c o c++???visualbasicexpress2005 va bene??

skintek1
28-10-2006, 12:29
prima di tutto sono del parere che pascal è un'ottima scelta per imparare a programmare :D continua così
poi vedo che ti manca qualche concetto base... turbo pascal 7 è un IDE (Integrated Development Environment) cioè un ambiente di programmazione, mentre pascal è un linguaggio di programmazione.
l'ambiente di programmazione è in poche parole una raccolta di programmi che servono al programmatore per programmare in un certo linguaggio. i componenti fondamentali sono l'editor per scrivere il codice e il compilatore per produrre il file EXE a partire dal codice sorgente.

per rispondere alla tua domanda quindi per modificare un sorgente ti basta un editor di testo, mentre per produrre l'eseguibile del sorgente modificato ti serve il compilatore :D
comunque pascal è un linguaggio molto utile primo perchè permette di imparare in maniera facile la programmazione strutturata, secondo ha una sintassi non troppo diversa dal C in modo che passare a uno dei tanti linguaggi C-like non è traumatico e infine perchè delphi è praticamente pascal orientato a oggetti ed è un linguaggio molto usato anche in ambito professionale.


sono un po confuso.....
ma turbo pascal fa sia da editor che da conpilatore se non ho capito male...è cosi'?

poi mi dici che per modificare un sorgente mi basta un editor,ma poi per rendere effettivi questi cambiamenti mi serve anche il compilatore,sbaglio?
cioè io modifico il codice sorgente con un editor,poi per esempio lo salvo sul pc,ma se io voglio creare il programma con le modifiche che gli ho fatto devo per forza compilarlo e quindi mi serve anche il compilatore ,sbaglio???

mad_hhatter
28-10-2006, 13:54
non sbagli.

un sorgente di un programma è nient'altro che una serie di file di testo semplice contenenti il codice in linguaggio "umano" del programma, cioè le istruzioni che il programma eseguirà, espresse in forma comoda per chi scrive il programma stesso.

ora le istruzioni così scritte non sono direttamente interpretabile da un computer, proprio perchè sono scritte per essere trattate da un essere umano. quello che bisogna fare per creare un programma eseguibile è appunto "tradurre" i sorgenti in linguaggio macchina e questo procedimento è svolto dal compilatore.

un IDE è appunto una collezione di programmi che fanno cose diverse ma servono a raggiungere un obiettivo unico: creare un programma. quindi un ide ti mostra innanzitutto un editor con cui scrivere i sorgenti e poi ci sarà un tasto, un comando per chiedere all'ide di usare il compilatore in esso integrato per tradurre il sorgente in un programma eseguibile

mad_hhatter
28-10-2006, 14:00
tieni presente che un ide è solo un modo comodo di programmare, ma non è essenziale... gli unici programmi essenziali per programmare sono un editor di testi (occhio, un editor ascii come notepad o altri editor avanzati, ma non word o altri elaboratori testi perchè il file che producono non contiene solo il testo ma anche info sulla formattazione, tutta roba che un compilatore interpreterebbe come errore perchè non facente parte del linguaggio di programmazione) e un compilatore.

tieni presente che un linguaggio di programmazione è solo un insieme di regole per scrivere un programma: di compilatori per uno stesso linguaggio ce ne sono tanti perchè vari produttori possono crearsi il proprio compilatore.

questo è valido soprattutto per C e C++ (c'è il compilatore della Borland, quello della Intel, quello della GNU, ecc...), mentre per java, ad esempio, non so se esistano compilatori diversi da quello creato dalla sun che è l'azienda che ha creato anche il linguaggio.

ti do queste info che magari sono sovrabbondanti, perchè tu non fraintenda il ruolo dei vari mezzi che servono a programmare.

mad_hhatter
28-10-2006, 14:29
il visualbasicexpress2005 è un ide specifico per il linguaggio visual basic e che non centra niente con c o c++... per essi c'è un ide apposito che non so come si chiami perchè non programmo psesso in c e mai in c++ (per ora :D ) e quando devo farlo mi basta un editor accoppiato a un compilatore.

ma secondo me se sei alle primearmi ti conviene seguire il suggerimento di K0nt3 e iniziare col pascal... è il linguaggio preferito nelle scuole superiori proprio perchè è un linguaggio didattico...

se poi vuoi passare a qualcosa di più professionale, considera anche l'opzione java che nasconde molte tecnicaglie al programmatore, risultando più semplice da imparare... occhio però che i linguaggi moderni (c a parte) sono orieentati agli oggetti, mentre pascal e c sono solo "strutturati".

la differenza è difficile da spiegare in due parole e soprattutto non è il caso di riempirti la testa di cose complicate all'inizio.

TuLKaS85
28-10-2006, 14:40
ma un buon software per programmare in c o c++???visualbasicexpress2005 va bene??

se ti vuoi buttare subito sul c e c++ prova microsoft visual C++ 6.0

il pascal serve solo a scopo didattico, ma se hai già un idea dei costrutti fondamentali e di come usarli con un piccola guida puoi lanciarti col c senza problemi ciao. :)

skintek1
28-10-2006, 15:28
io ho "fatto"un semplicissimo programma che calcola l'area di un rettangolo conoscendone la base e l'altezza e poi l'ho compilato,lui me la salvato con estensione .pas ,ma se io lo volessi creare con estensione .exe come devo fare??è possibile?

P.S.-tutto questo l'ho fatto con turbo pascal 7.0

skintek1
28-10-2006, 15:35
il visualbasicexpress2005 è un ide specifico per il linguaggio visual basic e che non centra niente con c o c++... per essi c'è un ide apposito che non so come si chiami perchè non programmo psesso in c e mai in c++ (per ora :D ) e quando devo farlo mi basta un editor accoppiato a un compilatore.

ma secondo me se sei alle primearmi ti conviene seguire il suggerimento di K0nt3 e iniziare col pascal... è il linguaggio preferito nelle scuole superiori proprio perchè è un linguaggio didattico...

se poi vuoi passare a qualcosa di più professionale, considera anche l'opzione java che nasconde molte tecnicaglie al programmatore, risultando più semplice da imparare... occhio però che i linguaggi moderni (c a parte) sono orieentati agli oggetti, mentre pascal e c sono solo "strutturati".

la differenza è difficile da spiegare in due parole e soprattutto non è il caso di riempirti la testa di cose complicate all'inizio.


ah ok quindi visual basic è proprio un linguaggio(come c,c++,pascal,java)ma allora uno scegli di usare un linguaggio per programmare invece di un'altro ,per le capacita' che ha ogni linguaggio o per la facilita' o meno dello stesso???
cioè mi spiego meglio,per esempio uno sceglie di usare c perchè solo con c si possono fare i programmi con estensione .exe,ho lo sceglie perchè gli piace di piu' usare quel linguaggio??cioè con tutti i linguaggi si possono creare tutti i tipi di programmi ho ogni linguaggio serve per creare un determinato tipo di programma??

mad_hhatter
28-10-2006, 16:04
da quel che ricordol'estensione .pas è l'estensione del file sorgente cioè del file di testo che tu hai scritto... quando lo compili ti dovrebbe dare l'exe, ma potrei sbagliare perchè sono anni che non vedo turbo pascal...

per i linguaggi... tanto per capirci, un linguaggio si sceglie per la comodità, la potenza e il livello di strumenti concettuali che mette a disposizione del programmatore, ma tutti i linguaggi possono fare le stesse cose (chiarirò tra poco questo discorso che è un po' impreciso). per capirci, un programma scritto usando il linguaggio c può essere realizzato usando anche il linguaggio assembly (quasi linguaggio macchina), quindi come vedi non è questione di COSA puoi fare ma di COME, con che facilità... il livello di astrazione fornito dalc è infinitamente più alto rispetto all'assembly. e quindi è molto piusemplice scrivere un programma complesso in c che con assembly. ad esempio, mentre in c dici "somma a e b epr darmi c", in assembly devi dire: "metti a nel registro x della cpu, al contenuto di x sommi b e ora salva il risultato che c'è in x nella locazione di memoria c"... noti il grado di astrazione diverso? bene, la differenza sta quasi tutta li...

il fatto che un programmaè un file .exe dipende SOLO dal sistema operativo (infatto in linux non esistono i .exe, per esempio)

ora, ho detto che tutti i linguaggi dal punto di vista del risultato sono uguali... concettualmente è vero, ma ci sono delle differenze tecniche.

un programma scritto in c, c++, delphi viene compilato e si ottiene un exe. punto e basta. ma un programma scritto in java non produce un exe ma una serie di file .class di cui uno viene mandato in esecuzione in una macchina virtuale (la java virtual machine) che è un interprete che sta a metà strada tra il sistema operativo e il tu programma. Il codice java viene letto e concettualmente eseguito dalla macchina virtuale la quale per eseguire le sue operazioni (e quindi in ultima analisi anche il tuo programma) dialoga col sistema operativo (ma qusto dialogo è del tutto trasparente al programmatore e all'utente). inoltre ci sono linguaggi che non vanno compilati e che si chiamano interpretati. sono una serie di istruzioni che viene presa in consegna da un programma, fratello del compilatore, che esegue dirattamente tali operazioni. il problema è che spesso per eseguire tali programmi bisogna invocare l'interprete adatto. esempi di linguaggi interpretati sono il basic, python, perl, javascript...

pensa a un file batch di windows... bene è un piccolo esempio di linguaggio interpretato, piu o meno...

per farti un po' di casino ti dico che java è semi compilato e semi interpretato proprio perchè lo compili ma il risultato va interpretato dalla JVM.

c'è poi da dire che i linguaggi si distinguono anche per alcuni meccanismi interni... ad esempio, la gestione dellamemoria o la protezione di certe operazioni... ma ne parleremo piu in la se vorrai

skintek1
28-10-2006, 16:23
io quando ho scritto il programma (trova l'area di un cerchio)dopo averlo scritto l'ho compilato(il tutto sempre con turbo pascla)poi l'ho lanciato sempre con "T.P."usando ovviamente "run"poi l'ho salvato e come detto prima me lo salva in ".pas"se poi io chiudo "T.P."e vado a riaprire il programma che ho appena salvato lui lo riapre sempre usando "T.P."quindi non è un programma autonomo ,ma ha sempre bisogni di "T.P."per funzionare,io volevo sapere se è possibile renderlo autonomo .exe cosi che se io clicco sul programma da me creato si apre senza il bisogno di "T.P.",ma questo è possibile con "T.P." o lo devo compilare con un'altro compilatore??
anche io pensavo come mi hai detto tu che una volta che lo compilavo questo si trasformasse in un exe,ma cosi non è stato e non capisco il perchè.......


da quello che mi hai detto uno sceglie di usare un IDE al posto di un'altro è solo per una scelta personale (come ci si trova meglio)no perchè io non volevo arrivare a capire bene un linguaggio dopo giorni e giorni di studio e alla fine scoprire che con quel linguaggio non si puo' creare alcuni programmi,cosi' almeno mi butto su un linguaggio in tutta sicurezza......devo solo scegliere quale....per adesso sono indeciso tra pascal e visual basic...tu che mi consigli??tu con cosa programmi??

mad_hhatter
28-10-2006, 17:20
allora quello che ha fatto è lanciare il programma all'interno dell'ide stesso (comportamento normale di un ide... anche se mi aspettavo che mettesse l'exe da qualche parte - a meno che non faccia una sorta di debug interpretando il codice senza cmpilarlo veramente, boh).... dovresti guardare nei menu se c'è un comando per creare l'exe.... mi spiace ma di piu nn so...

allora, intanto ricorda che un ide NON è un linguaggio, ma solo una collezione d istrumenti per programmare IN un linguaggio... per uno stesso linguaggio esistono svariati ide, e li si si sceglie solo in base al gusto personale.

ora, se vuoi imparare direttamente un linguaggio spendibile a livello professionale o quasi ti consiglio delphi e ti spiego perchè

1. deriva da pascal (ma occhio che è a oggetti) quindi dovrebbe essere relativamente facile
2. sfrutta la programmazione visuale per disegnare l'interfaccia

però delphi si paga, se borland non ha cambiato le cose...

io l'ho usato per un paio di lavori che ho fatto.

c'è un bel però... io sono studente universitario e per molte cose programmo ancora per console, quindi non faccio uso di interfacce grafiche

da quel che ho capito le interfacce grafiche sono tutto tranne che semplici perchè farle a mano è impensabile, mentre farle col un editor (come delphi) rendi tutto piu semplice e automatico, ma perdi anche il contatto col codice...

cioè, è delphi stesso che si arrangia a scrivere un sacco di cose per te...

inoltre tieni presente che delphi, a meno di non fare programmi per console particolarmente semplici, struttura il codice come una serie di procedure che gestiscano eventi. è unpo' diverso dalla programmazione didattica a cui ti abituano i libri di testo o le guide per iniziare a programmare, ed è molto diverso dall'uso che avrai fatto finora di un linguaggio...

se vuoi un linguaggio spendibile per realizzare inizialmente programmi per console (la console dos per intenderci) allora potresti partire col c rimanendo sul semplice, senza addentrarti subito in cose difficili...

ma se dovessi scegliere io, partirei da java: faresti programmi per console inizialmente, ma avresti un linguaggio orientato agli oggetti (tecnologia importantissima), più facile del c e del c++ ma non troppo diverso da essi come sintassi (quindi potresti eventualmente passare da java a c++) e poi java ti nasconde molti problemi che invece in c e c++ sono espliciti e incasinati (gestione della memoria e puntatori: due belle bestiacce)

un ottimo ide per iniziare con java, gratuito per uso nn comerciale è jcreator. non è il top in ambito industriale, ma per iniziare va benissimo, perchè usare ide piu complessi del necessario ti farebbe perdere di vista l'apprendimento del linguaggio... insomma, prima impara, poi diventa critico e scegli consapevolmente e con cognizione di causa

mad_hhatter
28-10-2006, 17:21
purtroppo io non conosco i linguaggi interpretati, tranne il vecchio basic, quindi non so dirti come siano, ma normalmente per iniziare a programmare si va su delphi, pascal, c, c++ o java...

mad_hhatter
28-10-2006, 17:23
e come avrai capito io programmo soprattutto in java, ma a livello molto terra terra: come ti ho detto mi limito a programmi console e ho appena visto le applet .

skintek1
28-10-2006, 17:25
se ti vuoi buttare subito sul c e c++ prova microsoft visual C++ 6.0

il pascal serve solo a scopo didattico, ma se hai già un idea dei costrutti fondamentali e di come usarli con un piccola guida puoi lanciarti col c senza problemi ciao. :)



ho trovato solo visuua c++ 2005 e non visual 6.0 ,è la stessa cosa??

mad_hhatter
28-10-2006, 17:26
il 6.0 è la versione di un po di anni fa, mi pare... credo vada bene il 2005, sicuramente è il piu recente

skintek1
28-10-2006, 17:44
ho controllato nel menu di turbo pascal,e c'è la voce che ho sempre usato che è compile ed in options c'è compiler,ma qualcosa che porta all'exe non l'ho trovato,boh non l'avro' visto mi sembra strano che compili solo con estensione .pas

mi hai detto che potrei usare delphi (che è a oggetti)se ho capito bene è un po come dire creare una pagina web con frontpageexpress(dove non si usa il codice html ma si usa una veste grafica)
se no anche java,ma non capisco come mai mi dici che piu' in la sara' possibile passare a c++,ma perchè dovrei passare a c++ visto che mi hai detto che con qualsiasi linguaggio si puo' creare qualsiasi programma non vedo perchè dovrei passare a c++,se con java posso creare tutti i programmi mi studio quello e mi tengo quello,sbaglio???

skintek1
28-10-2006, 17:59
ho scaricato jcreator e l'ho installato ,poi qundo lo lancio mi da una finestra :

jcreator setup file associations 1of3

ma cosa significa???cioè mi sta dicendo di scegliere quale programma voglio andare a creare o è ancore una procedura per installare jcreator??

skintek1
28-10-2006, 18:04
ho scaricato jcreator e l'ho installato ,poi qundo lo lancio mi da una finestra :

jcreator setup file associations 1of3

ma cosa significa???cioè mi sta dicendo di scegliere quale programma voglio andare a creare o è ancore una procedura per installare jcreator??

tra le 3 associations ho scelto java,e adesso ho installlo jcreator e l'ho aperto ,poi ho provato a fare new project,e mi da la possibilita' di creare :


java file
html file
text file
basic applications java
basic applet java
empty project
empty workspace

ma la possibilita' di creare un file .exe o .com non c'è???

mad_hhatter
28-10-2006, 18:17
allora, piano, per gradi... quando ti parlavo di java un po' di post fa ti ho detto che java non crea un file exe, ma un file .class che va interpretato dalla jvm (ps: oltre a jcreator hai scaricato l'sdk da sun.com? senza quello non fai niente perchè quello E' java).

per questo ti dicevo se volevi passare a c++, perchè c++ produce exe, java no. e cmq c++ e java sono diversi per moltissimi aspetti, non ultimo il fatto che un programma java è più lento di uno creato con c++

le file associations sonosemplicemente un modo per dire a win che quando fai doppio click sull'icona di un file apre il programma ad esso associato. se hai associato i .java a jcreator, facendo doppio click su un file .java questo ti viene aperto direttamente in jcreator. tutto li

ora, per iniziare con java e jcreator, inizia da new -> file, non project... andiamo per gradi, è meglio

mad_hhatter
28-10-2006, 18:18
per "interpretato dalla jvm" intendo che non ci fai doppio click sopra per lanciarlo ma apri per esempio la console e scrivi "java mioprogramma" e il programma parte

skintek1
28-10-2006, 18:54
allora, piano, per gradi... quando ti parlavo di java un po' di post fa ti ho detto che java non crea un file exe, ma un file .class che va interpretato dalla jvm (ps: oltre a jcreator hai scaricato l'sdk da sun.com? senza quello non fai niente perchè quello E' java).

per questo ti dicevo se volevi passare a c++, perchè c++ produce exe, java no. e cmq c++ e java sono diversi per moltissimi aspetti, non ultimo il fatto che un programma java è più lento di uno creato con c++

le file associations sonosemplicemente un modo per dire a win che quando fai doppio click sull'icona di un file apre il programma ad esso associato. se hai associato i .java a jcreator, facendo doppio click su un file .java questo ti viene aperto direttamente in jcreator. tutto li

ora, per iniziare con java e jcreator, inizia da new -> file, non project... andiamo per gradi, è meglio


si è vero scusa me l'ero dimenticato che serve la virtual machines e che non fa file .exe,cmq se non si possono creare file .exe non mi soffermo sul linguaggio java,meglio che mi orienti verso il "C" IDE per C ne conosci??digital mars o watcom o LCC o se no anche come mi hanno detto un po di post indietro microsoft visual 2005...


P.S.ma di IDE in italiano non c'è traccia,tutti quelli che ho trovato sono in inglese....

mad_hhatter
28-10-2006, 19:01
purtroppo di ide per c non ne conosco... mi sono sempre arrangiato con editor di testo e compilatore... cmq lcc l'ho già sentito...

ide in italiano, gratuiti, non ne conosco, mi spiace...

skintek1
28-10-2006, 19:13
secondo me è meglio che imparo il linguaggio C e soffermarmi su quello per adesso,devo solo trovare una buona guida (compito non facile)sul web ce ne sono molte ma la maggior parte non spiegano proprio tutto sul linguaggio C.....

quindi tu usi "solo" java e delphi???

mad_hhatter
28-10-2006, 19:27
ho imparato pascal alle superiori, sono passato a delphi quando ho fatto uno stage tra le superiori e l'uni e l'ho usato anche per un lavoro che mi era stato commissionato un anno fa. all'uni ho imparato java, il mio linguaggio di riferimento per ora, ma ho dovuto imparare anche il c per un corso di reti...

cmq il linguaggio che uso piu di frequente al momento è java.

iniziare dal c è una buona idea. anche perchè non è a oggetti e quindi è un po' più semplice iniziare (forse).

prova a iniziare da qui: http://programmazione.html.it/guide/leggi/32/guida-c/

k0nt3
28-10-2006, 19:49
per creare un eseguibile in turbo pascal devi dirgli di crearlo sull'harddisk perchè sennò lo tiene soltanto in memoria per l'esecuzione. per farlo nel menu compile clicca destination e dopo assicurati che di fianco c'è scritto disk ;) l'eseguibile dovresti trovarlo dove c'è anche il sorgente

skintek1
28-10-2006, 19:56
ho imparato pascal alle superiori, sono passato a delphi quando ho fatto uno stage tra le superiori e l'uni e l'ho usato anche per un lavoro che mi era stato commissionato un anno fa. all'uni ho imparato java, il mio linguaggio di riferimento per ora, ma ho dovuto imparare anche il c per un corso di reti...

cmq il linguaggio che uso piu di frequente al momento è java.

iniziare dal c è una buona idea. anche perchè non è a oggetti e quindi è un po' più semplice iniziare (forse).

prova a iniziare da qui: http://programmazione.html.it/guide/leggi/32/guida-c/


io con pascal mi trovo abbastanza bene,peccato che non riesco a capire come mai non mi compila i programmi se non in estensione .pas.....
anche io penso che iniziare da C sia una buona idea ,anche perchè puo' servire in futuro visto che con il C bisogna proprio scrivere il codice e non si usa niente di grafico,il link della guida mi sembra ottimo adesso li do un'occhiata e vediamo se capisco qualcosa....
adesso sono indeciso su quale IDE usare,nel link che mi hai dato ce ne sono un po,ma i migliori mi sembrano :
borlandC++
,Lcc e devC++,sto gia scaricando devC++ e se mi trovo bene tengo quello....

skintek1
28-10-2006, 20:03
per creare un eseguibile in turbo pascal devi dirgli di crearlo sull'harddisk perchè sennò lo tiene soltanto in memoria per l'esecuzione. per farlo nel menu compile clicca destination e dopo assicurati che di fianco c'è scritto disk ;) l'eseguibile dovresti trovarlo dove c'è anche il sorgente



GRAZIE MILLE k0nt3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
finalmente ho capito come fare!!!!!!!!!!!!
difatti come dici te io prima lo compilavo ma in memoria,poi cliccando su compile memory è cambiato ed è diventato compile disk e finalmente me l'ha slavato come .exe,GRAZIE ANCORA VERAMENTE!!!!!!!!!!!!!!!

mad_hhatter
28-10-2006, 20:04
per gli ide è questione di gusto e di abitudine, quindi la cosa migliore è provarne un paio e poi decidere...

hai letto il post di k0nt3 su turbo pascal? cmq il file .pas è il sorgente, non il compilato: prova ad aprire un file .pas con un editor

skintek1
28-10-2006, 20:14
per gli ide è questione di gusto e di abitudine, quindi la cosa migliore è provarne un paio e poi decidere...

hai letto il post di k0nt3 su turbo pascal? cmq il file .pas è il sorgente, non il compilato: prova ad aprire un file .pas con un editor


si infatti adesso ho sottomano devC++ e mi sembra buono,mi leggo la guida e vedo un po comè...
si ho letto il post di k0nt3 e finalmente grazie a lui sono riuscito a ricavare questo .exe....

k0nt3
28-10-2006, 20:22
si infatti adesso ho sottomano devC++ e mi sembra buono,mi leggo la guida e vedo un po comè...
si ho letto il post di k0nt3 e finalmente grazie a lui sono riuscito a ricavare questo .exe....
per il C/C++ io userei code::blocks al posto di devC++ http://www.codeblocks.org/downloads.shtml però devi leggere come si installa la nightly build (che è la versione che conviene installare) perchè devi copiare alcune dll nella cartella del programma... ora devo andare, al massimo se non ci riesci e ti interessa a domani ;)

k0nt3
28-10-2006, 20:22
GRAZIE MILLE k0nt3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
finalmente ho capito come fare!!!!!!!!!!!!
difatti come dici te io prima lo compilavo ma in memoria,poi cliccando su compile memory è cambiato ed è diventato compile disk e finalmente me l'ha slavato come .exe,GRAZIE ANCORA VERAMENTE!!!!!!!!!!!!!!!
di niente ;) ho mosso i miei primi passi in turbo pascal.. come dimenticarlo :sofico:

skintek1
28-10-2006, 20:23
per il C/C++ io userei code::blocks al posto di devC++ http://www.codeblocks.org/downloads.shtml però devi leggere come si installa la nightly build (che è la versione che conviene installare) perchè devi copiare alcune dll nella cartella del programma... ora devo andare, al massimo se non ci riesci e ti interessa a domani ;)


ok grazie adesso guardo...

skintek1
28-10-2006, 21:18
per il C/C++ io userei code::blocks al posto di devC++ http://www.codeblocks.org/downloads.shtml però devi leggere come si installa la nightly build (che è la versione che conviene installare) perchè devi copiare alcune dll nella cartella del programma... ora devo andare, al massimo se non ci riesci e ti interessa a domani ;)

ho capito come devo fare per la nightly build ,ho trovato il file dll da mettere nella caretella del programma,ma non ho trovato il link per il download di code::block naughtly build........

skintek1
28-10-2006, 23:52
mi sorge un dubbio,ma la parentesi graffa come si fa??con che tasti della tastiera??

jappilas
29-10-2006, 01:10
mi sorge un dubbio,ma la parentesi graffa come si fa??con che tasti della tastiera??un modo è comporre il relativo codice sul tastierino numerico tenendo premuto ALT:
ALT+123 per {
ALT+125 per }

ma da programmatore ti consiglio di tenere sottomano il layout americano per la tastiera scegliendolo nelle Impostazioni internazionali e lingua > Lingue di input e lasciando il relativo selettore nella systray

sulla tastiera USA:
SHIFT + [ per {
SHIFT + ] per }

ps: sei riuscito a installare Code:Blocks?

skintek1
29-10-2006, 01:16
un modo è comporre il relativo codice sul tastierino numerico tenendo premuto ALT:
ALT+123 per {
ALT+125 per }

ma da programmatore ti consiglio di tenere sottomano il layout americano per la tastiera scegliendolo nelle Impostazioni internazionali e lingua > Lingue di input e lasciando il relativo selettore nella systray

sulla tastiera USA:
SHIFT + [ per {
SHIFT + ] per }

ps: sei riuscito a installare Code:Blocks?


non riesco a trovare il link per la naughtly build(che mi ha consigliato k0nt3)vedo solo il link per code::block normale.....

cmq non mi funziona ancora la parentesi graffa.......se ho capito bene devo schiacciare alt e poi i tasti 123 insieme,sbaglio??

skintek1
29-10-2006, 01:26
non riesco a trovare il link per la naughtly build(che mi ha consigliato k0nt3)vedo solo il link per code::block normale.....

cmq non mi funziona ancora la parentesi graffa.......se ho capito bene devo schiacciare alt e poi i tasti 123 insieme,sbaglio??



come non detto funziona......con alt+123 125,ma con un portatile???non ha il tastierino numerico....

jappilas
29-10-2006, 01:55
come non detto funziona......con alt+123 125,ma con un portatile???non ha il tastierino numerico....
se non sbaglio, sui portatili il tastierino numerico è mappato su una sezione marginale della tastiera e usato attraverso combinazioni con un apposito tasto funzione ;)
cmq per programmare trovo infinite volte più pratico usare il layout americano ;)
non riesco a trovare il link per la naughtly build(che mi ha consigliato k0nt3)vedo solo il link per code::block normale.....
occhio che naughty in inglese vuol dire "malizioso" in un "certo" senso :asd:
notturno sarebbe nightly ;)
cmq i link sono su una sezione dedicata del loro forum ...per ogni nuova build c'è un thread intitolato "the .... build is OUT" con il primo post a riportare link ai file da scompattare con 7zip o winrar ( link da aprire invece di provare subito tasto destro>salva con nome)

skintek1
29-10-2006, 02:05
se non sbaglio, sui portatili il tastierino numerico è mappato su una sezione marginale della tastiera e usato attraverso combinazioni con un apposito tasto funzione ;)
cmq per programmare trovo infinite volte più pratico usare il layout americano ;)

occhio che naughty in inglese vuol dire "malizioso" in un "certo" senso :asd:
notturno sarebbe nightly ;)
cmq i link sono su una sezione dedicata del loro forum ...per ogni nuova build c'è un thread intitolato "the .... build is OUT" con il primo post a riportare link ai file da scompattare con 7zip o winrar ( link da aprire invece di provare subito tasto destro>salva con nome)


ha ma allora ho capito dovè....lo stavo scaricando solo che ho letto vuoi scaricare 7zip e io li ho detto di no,pensavo mi volesse far scaricare questo 7zip...

cmq ho dato un occhi su una guida che spiega il linguaggio C,e mi sono gia confuso le idee e non di poco.....sara' forse perchè sono abituato a pascal e li i comandi sono tutti diversi.....basta dire che in C le parentesi graffe servono per indicare il "corpo"del programma ed invece in pascal servono per i commenti....e qui ho detto tutto...

jappilas
29-10-2006, 02:40
ha ma allora ho capito dovè....lo stavo scaricando solo che ho letto vuoi scaricare 7zip e io li ho detto di no,pensavo mi volesse far scaricare questo 7zip...

cmq ho dato un occhi su una guida che spiega il linguaggio C,e mi sono gia confuso le idee e non di poco.....sara' forse perchè sono abituato a pascal e li i comandi sono tutti diversi.....
basta dire che in C le parentesi graffe servono per indicare il "corpo"del programma ed invece in pascal servono per i commenti....e qui ho detto tutto...
ti dirò... appena entrato in uni, dopo 5 anni di pascal, anch'io sono rimasto disorientato al primo impatto con C e C++ :eek:
però per me non fu tanto per i costrutti sintattici (specie una volta viste le omologie) quanto per le gestione di meccanismi nuovi quali i puntatori, la gestione esplicita delle memoria ecc... quindi ti consiglio di prestare particolare attenzione a questo aspetto

skintek1
29-10-2006, 02:46
ti dirò... appena entrato in uni, dopo 5 anni di pascal, anch'io sono rimasto disorientato al primo impatto con C e C++ :eek:
però per me non fu tanto per i costrutti sintattici (specie una volta viste le omologie) quanto per le gestione di meccanismi nuovi quali i puntatori, la gestione esplicita delle memoria ecc... quindi ti consiglio di prestare particolare attenzione a questo aspetto


quindi te il linguaggio pascal lo cosci bene???cosa usavi come IDE??


si senza dubbio il C è anche al di la della sintassi composto in modo diverso da pascal....

ma con pascal hai provato anche a fare programmi complessi??

jappilas
29-10-2006, 10:04
quindi te il linguaggio pascal lo cosci bene???per i vari programmini didattici che mi facevano scrivere alle medie, quindici anni fa, non conoscevo altro... dopo essere entrato in uni l' ho abbandonato in favore di C, C++, Java, e il prossimo che impararerò C#.... :stordita:
ma con pascal hai provato anche a fare programmi complessi??ehm purtroppo no, non oltre questo:
[scheletro nell'armadio mode]
program mandel(input,output);
const nx=100;ny=320;
type
punti=0..200;
var
incremx,incremy,cre,cim,b:real;
supy,supx,infy,infx:real;
i,j:0..640;
co,co1:integer;
function man(cr,ci:real):integer;
var
dam,zim,zre:real;
contatore:integer;
begin
zim:=0; zre:=0; contatore:=0;
while (((zre*zre+zim*zim)<=4.00) and (contatore<=20)) do
begin
dam:=((zre*zre)-(zim*zim))+cr;
zim:=(2*(zim*zre))+ci;
zre:=dam;
if keypressed then halt;
contatore:=contatore+1;
end;
man:=contatore;
end;
begin
writeln('coordinate superiori X Y');
readln(supx);
readln(supy);
writeln('coordinate inferiori x y');
readln(infx);
readln(infy);
graphcolormode; palette(2);
incremx:=abs(supx-infx)/nx; incremy:=abs(supy-infy)/ny;
cre:=infx; i:=0; j:=100; b:=0;
while (cre<=supx) do begin
cim:=infy;
while(cim<=supy) do begin
co:=round((20-man(cre,cim))*b);
co1:=round(co/2);
if(co>0) then begin
draw(i,j,i,j-co1,1);
draw(i,j-co1,i,j-co,2);
plot(i,j-co,3);
end;
i:=i+1;
cim:=cim+incremy;
end;
j:=j+1;
i:=0;
b:=b+0.03;
cre:=cre+incremx;
end
end.
tra l'altro notare il coding style orrido, molto poco leggibile e anzi irregolare :(
cosa usavi come IDE??chiamare IDE il Turbo pascal 3 per DOS che ci facevano usare nel 94 su macchine di dieci anni prima era un eufemismo :asd:
si senza dubbio il C è anche al di la della sintassi composto in modo diverso da pascal....diciamo che al di là dei begin/end che diventano {} e delle funzioni di libreria con nomi diversi, C "si aspetta" che il programmatore abbia una maggiore "consapevolezza" del funzionamento della macchina

mad_hhatter
29-10-2006, 10:27
per le parentesi graffe, se hai un portatile con win xp (per le altre versioni non so se va bene lo stesso) c'è un programmino di MS che serve a personalizzare il layout della tastiera. In particolare puoi tenere il layout italiano e aggiungere delle funzionalità ai tasti (come ad esmpio impostarne due per farti le graffe)

il programma è questo:
http://www.microsoft.com/downloads/details.aspx?FamilyId=FB7B3DCD-D4C1-4943-9C74-D8DF57EF19D7&displaylang=en

skintek1
29-10-2006, 12:16
program mandel(input,output);
const nx=100;ny=320;
type
punti=0..200;
var
incremx,incremy,cre,cim,b:real;
supy,supx,infy,infx:real;
i,j:0..640;
co,co1:integer;
function man(cr,ci:real):integer;
var
dam,zim,zre:real;
contatore:integer;
begin
zim:=0; zre:=0; contatore:=0;
while (((zre*zre+zim*zim)<=4.00) and (contatore<=20)) do
begin
dam:=((zre*zre)-(zim*zim))+cr;
zim:=(2*(zim*zre))+ci;
zre:=dam;
if keypressed then halt;
contatore:=contatore+1;
end;
man:=contatore;
end;
begin
writeln('coordinate superiori X Y');
readln(supx);
readln(supy);
writeln('coordinate inferiori x y');
readln(infx);
readln(infy);
graphcolormode; palette(2);
incremx:=abs(supx-infx)/nx; incremy:=abs(supy-infy)/ny;
cre:=infx; i:=0; j:=100; b:=0;
while (cre<=supx) do begin
cim:=infy;
while(cim<=supy) do begin
co:=round((20-man(cre,cim))*b);
co1:=round(co/2);
if(co>0) then begin
draw(i,j,i,j-co1,1);
draw(i,j-co1,i,j-co,2);
plot(i,j-co,3);
end;
i:=i+1;
cim:=cim+incremy;
end;
j:=j+1;
i:=0;
b:=b+0.03;
cre:=cre+incremx;
end
end.



che funzione aveva il comando function man,poi non ho capito molto bene questo passaggio:

var
dam,zim,zre:real;
contatore:integer;
begin
zim:=0; zre:=0; contatore:=0;
while (((zre*zre+zim*zim)<=4.00) and (contatore<=20)) do
begin
dam:=((zre*zre)-(zim*zim))+cr;
zim:=(2*(zim*zre))+ci;
zre:=dam;

tu dai il valore alle variabili zim,zre,e contatore,ma se gli dai gia te il valore non le puoi mettere come costanti???poi li dai il valore e sotto scrivi

zim:= (2*(zim*zre))+ci;

ma perchè li dici di calcolare la variabile zim se gli hai gia dato te il valore???




P.S.ma non c'è in giro per il web una lista magari in tabella di tutti i comandi del linguaggio pascal????per esempio:

VAR (indica che dopo il var si comincera'a dichiarare le variabili
USES CRT (indica al compilatore di usare la libreria CRT
CLRSCR (pulisce lo schermo da qualsiasi carattere
etc etc etc etc............

skintek1
29-10-2006, 12:30
per le parentesi graffe, se hai un portatile con win xp (per le altre versioni non so se va bene lo stesso) c'è un programmino di MS che serve a personalizzare il layout della tastiera. In particolare puoi tenere il layout italiano e aggiungere delle funzionalità ai tasti (come ad esmpio impostarne due per farti le graffe)

il programma è questo:
http://www.microsoft.com/downloads/details.aspx?FamilyId=FB7B3DCD-D4C1-4943-9C74-D8DF57EF19D7&displaylang=en



ciao mad_hhatter,tu sai come funziona questo programma??
l'ho scaricato ma non è che ci capisco molto...

mad_hhatter
29-10-2006, 12:55
l'ho usato tempo fa, ora nn ricordo piu tanto bene (tanto per cambiare :D )

in sostanza deve esserci la possibilità di farti mostrare il layout corrente (ti dà un'immagine della tastiera con i tasti e le combinazioni abilitati al momento)

da li' ti posizioni su due tasti di tua scelta, per esempio quelli che fanno le parentesi quadre o le tonde, e usi una combinazione di tasti non ancora usata per fare le graffe

ad esempio, per i tasti delle tonde usi shift+7, shift+8

puoi usare, per sempio, alt+7, alt+8 per fare le graffe

in quel programmino se spunti una casella relativa ad esempio a shift ti mostra i tasti abilitati dallo shift...

se spunti alt docresti avere in corrispondenza dei tasti 7,8 un tasto vuoto, segno che la combinazione con alt è libera.

tu imposti il tasto per fare la graffa e salvi il tutto (salva su un file nuovo, non sovrascrivere il layout originale)...

poi dai menu c'è un comando per verificare che il layout da te creato è corretto e poi c'è un altro comando per creare un installer che crea un file di installazione: fai doppio click su tale file .msi e parte l'installazione del nuovo layout.

infine vai nelle proprietà della lingua di input della tastiera e scegli il layout da te creato

spero di essermi ricordato bene come si fa

mad_hhatter
29-10-2006, 13:00
che funzione aveva il comando function man,poi non ho capito molto bene questo passaggio:

var
dam,zim,zre:real;
contatore:integer;
begin
zim:=0; zre:=0; contatore:=0;
while (((zre*zre+zim*zim)<=4.00) and (contatore<=20)) do
begin
dam:=((zre*zre)-(zim*zim))+cr;
zim:=(2*(zim*zre))+ci;
zre:=dam;

tu dai il valore alle variabili zim,zre,e contatore,ma se gli dai gia te il valore non le puoi mettere come costanti???poi li dai il valore e sotto scrivi

zim:= (2*(zim*zre))+ci;

ma perchè li dici di calcolare la variabile zim se gli hai gia dato te il valore???




P.S.ma non c'è in giro per il web una lista magari in tabella di tutti i comandi del linguaggio pascal????per esempio:

VAR (indica che dopo il var si comincera'a dichiarare le variabili
USES CRT (indica al compilatore di usare la libreria CRT
CLRSCR (pulisce lo schermo da qualsiasi carattere
etc etc etc etc............

una variabile va sempre inizializzata a un valore di partenza, altrimenti non sai che valore abbia la prima volta che la utilizzi... lui sicuramente deve fare dei calcoli iterati aggiornando il valore della variabile ad ogni passo.... ma il valore iniziale glielo deve dare lui. se fosse una costante non gli servirebbe a niente perchè non potrebbe aggiornarla...

sicuramente c'è una guida alle istruzioni pascal... dovresti chiedere a google, sicuramente lo sa :)

skintek1
29-10-2006, 13:28
l'ho usato tempo fa, ora nn ricordo piu tanto bene (tanto per cambiare :D )

in sostanza deve esserci la possibilità di farti mostrare il layout corrente (ti dà un'immagine della tastiera con i tasti e le combinazioni abilitati al momento)

da li' ti posizioni su due tasti di tua scelta, per esempio quelli che fanno le parentesi quadre o le tonde, e usi una combinazione di tasti non ancora usata per fare le graffe

ad esempio, per i tasti delle tonde usi shift+7, shift+8

puoi usare, per sempio, alt+7, alt+8 per fare le graffe

in quel programmino se spunti una casella relativa ad esempio a shift ti mostra i tasti abilitati dallo shift...

se spunti alt docresti avere in corrispondenza dei tasti 7,8 un tasto vuoto, segno che la combinazione con alt è libera.

tu imposti il tasto per fare la graffa e salvi il tutto (salva su un file nuovo, non sovrascrivere il layout originale)...

poi dai menu c'è un comando per verificare che il layout da te creato è corretto e poi c'è un altro comando per creare un installer che crea un file di installazione: fai doppio click su tale file .msi e parte l'installazione del nuovo layout.

infine vai nelle proprietà della lingua di input della tastiera e scegli il layout da te creato

spero di essermi ricordato bene come si fa


sono riuscito a creare la tastiera con in piu l'uso delle parentesi graffe....solo che poi quando vado a fare: validate layout mi da questi messaggi di warning:


WARNING: € (U+20ac) is already defined more than once on the keyboard (on VK_E, ShiftState 'Ctl+Alt' and VK_5, ShiftState 'Ctl+Alt').
WARNING: { (U+007b) is already defined more than once on the keyboard (on VK_OEM_1, ShiftState 'Shift+Ctl+Alt' and VK_8, ShiftState 'Ctl+Alt').
WARNING: } (U+007d) is already defined more than once on the keyboard (on VK_OEM_PLUS, ShiftState 'Shift+Ctl+Alt' and VK_9, ShiftState 'Ctl+Alt').
WARNING: . (U+002e) is already defined more than once on the keyboard (on VK_OEM_PERIOD, ShiftState 'Base' and VK_DECIMAL, ShiftState 'Base').
WARNING: '<' defined on OEM_102 (Base) but not defined elsewhere. This key may not be present on all keyboards.
WARNING: '>' defined on OEM_102 (Shift) but not defined elsewhere. This key may not be present on all keyboards.


e quindi non mi da neanche la possibilita' da creare l'installer,dove ho sbagliato??

ho provato a fare anche : test layout tastiera,ho provato tutti i comandi e funzionano alla perfezione,anche le parentesi graffe nuovo tasto dato da me

mad_hhatter
29-10-2006, 13:36
sembra che le graffe fossero già definite... hai provato a visualizzare tutte le combinazioni di tasti prima di procedere?

skintek1
29-10-2006, 13:37
una variabile va sempre inizializzata a un valore di partenza, altrimenti non sai che valore abbia la prima volta che la utilizzi... lui sicuramente deve fare dei calcoli iterati aggiornando il valore della variabile ad ogni passo.... ma il valore iniziale glielo deve dare lui. se fosse una costante non gli servirebbe a niente perchè non potrebbe aggiornarla...

sicuramente c'è una guida alle istruzioni pascal... dovresti chiedere a google, sicuramente lo sa :)


ah ok si ho capito il mio quesito sulle variabili,ho gia provato a cercare con google ma io non voglio una guida ma solo l'elenco dei comandi possibili in pascal...tutte le guide che ho trovato nel web spiegano le principali funzioni ma non tutte quelle possibili in pascal,poi le guide che ho trovato arrivano sempre a spiegare programmi partendo da programmi semplicissimi a programmi un po piu complicati ma pur sempre semplici programmi...non vanno a fondo nel linguaggio pascal,arrivando anche a programmi molto complessi,dovrei comprarmi un bel libro che spieghi prorpio tutto sul pascal,partendo dalle cose semplicissime alle cose piu' complesse...

skintek1
29-10-2006, 13:41
sembra che le graffe fossero già definite... hai provato a visualizzare tutte le combinazioni di tasti prima di procedere?



si si le ho provate tutte,cmq quando ho fatto il test con il tasto "alt+8 e alt+9"mi ha fatto le graffe e prima non me le ha mai fatte.....
poi con il layout della tastiera creata da me schiaccio sul tasto altgr mi da al posto dell'8 e del 9 le parentesi graffe ed invece prima era vuoto....quindi prima non c'era...

mad_hhatter
29-10-2006, 13:47
purtroppo cosi non ti so aiutare... magari non gli piace la combinazione con alt, provane altre...

nonesistono guide omnicomprensive di tutti i comandi di un linguaggio xke un linguaggio può essere espanso attraverso nuove librerie... inoltre il pascal puro e semplice non è un linguaggio correntemente usato, come può essere invece object pascal, quindi è molto probabile che le guide lo illustrino a solo scopo didattico e quindi non vadano ad analizzare progetti grossi, tutto qui...

mad_hhatter
29-10-2006, 13:49
a proposito delle guide.. cerchi solo in italiano o anche in inglese? perchè di sicuro in inglese c'è molta piu roba

skintek1
29-10-2006, 13:59
purtroppo cosi non ti so aiutare... magari non gli piace la combinazione con alt, provane altre...

nonesistono guide omnicomprensive di tutti i comandi di un linguaggio xke un linguaggio può essere espanso attraverso nuove librerie... inoltre il pascal puro e semplice non è un linguaggio correntemente usato, come può essere invece object pascal, quindi è molto probabile che le guide lo illustrino a solo scopo didattico e quindi non vadano ad analizzare progetti grossi, tutto
qui...


ecco a proposito parlando di librerie pascal...una libreria è un insieme di comandi ,se per esempio io faccio un programma usando la libreria CRT(io dico al compilatore di usare la libreria CRT)con "uses CRT" cioè questo vuol dire che io in quel programma posso usare solo comandi che sono in quella libreria???cioè se io dovessi usare un comando di un'altra libreria il compilatore mi da errore perchè non riconosce il comando visto che appartiene ad un'altra libreria,è cosi???

skintek1
29-10-2006, 14:00
a proposito delle guide.. cerchi solo in italiano o anche in inglese? perchè di sicuro in inglese c'è molta piu roba

solo in italiano....certo che se sapevo bene l'inglese ero molto avvanttaggiato

mad_hhatter
29-10-2006, 14:04
ecco a proposito parlando di librerie pascal...una libreria è un insieme di comandi ,se per esempio io faccio un programma usando la libreria CRT(io dico al compilatore di usare la libreria CRT)con "uses CRT" cioè questo vuol dire che io in quel programma posso usare solo comandi che sono in quella libreria???cioè se io dovessi usare un comando di un'altra libreria il compilatore mi da errore perchè non riconosce il comando visto che appartiene ad un'altra libreria,è cosi???


no assolutamente! non SOLTANTO comandi di quella libreria ma ANCHE di quella libreria. cioè, tu specificando uses CRT dici al compilatore che userai delle procedure o funzioni che vanno cercate all'interno di una libreria. Sta a chi produce librerie evitare che due librerie diverse dichiarino la stessa procedura oppure sta a te rimuovere l'ambiguità qualora esistesse. Ma tu in un programma puoi importare tutte le librerie necessarie, non soltanto una, anzi, quasi mai solo una

mad_hhatter
29-10-2006, 14:05
solo in italiano....certo che se sapevo bene l'inglese ero molto avvanttaggiato

eh, allora è un po' dura ottenere del buon materiale, spiacente

skintek1
29-10-2006, 14:20
no assolutamente! non SOLTANTO comandi di quella libreria ma ANCHE di quella libreria. cioè, tu specificando uses CRT dici al compilatore che userai delle procedure o funzioni che vanno cercate all'interno di una libreria. Sta a chi produce librerie evitare che due librerie diverse dichiarino la stessa procedura oppure sta a te rimuovere l'ambiguità qualora esistesse. Ma tu in un programma puoi importare tutte le librerie necessarie, non soltanto una, anzi, quasi mai solo una


si ,ho capito che in un programma si possono usare piu' librerie,ma se io indico solo la libreria CRT e poi metto un comando di un'altra libreria,il compilatore in che libreria va a cercare il comando??
e cmq turbo pascal ha tutte le librerie del pascal??

skintek1
29-10-2006, 14:22
eh, allora è un po' dura ottenere del buon materiale, spiacente



e purtroppo lo so......

mad_hhatter
29-10-2006, 14:37
si ,ho capito che in un programma si possono usare piu' librerie,ma se io indico solo la libreria CRT e poi metto un comando di un'altra libreria,il compilatore in che libreria va a cercare il comando??
e cmq turbo pascal ha tutte le librerie del pascal??

se tu importi una libreria e solo quella puoi usare tutti e soli i comandi che:
- figurano in quella libreria
- figurano in eventuali libreria importate implicitamente dal linguaggio (solitamente quella contenente i metodi base)

se il compilatore incontra un metodo che nn trova in nessuna delle librerie implicitamente o esplicitamente importate solleva un errore.

non so se il TP contenga tutte le librerie... per linguaggi di uso comune solitamente autori indipendenti creano e mettono a disposizione su internet librerie da loro create e che spesso sono o non possono essere incluse negli ide. tali librerie andranno scaricate e installate a mano per poter essere usate, ma di solito servono per compiti ben precisi e complessi

skintek1
29-10-2006, 14:53
non so se il TP contenga tutte le librerie... per linguaggi di uso comune solitamente autori indipendenti creano e mettono a disposizione su internet librerie da loro create e che spesso sono o non possono essere incluse negli ide. tali librerie andranno scaricate e installate a mano per poter essere usate, ma di solito servono per compiti ben precisi e complessi



ma una volta che io scarico una libreria come faccio ad installarla in turbo pascal in modo da poterla usare per la creazione di un programma??

mad_hhatter
29-10-2006, 15:07
dipende dall'ide... per TP potrebbe essere sufficiente copiare i file della libreria nella cartella dove sono contenute le altre librerie usate da TP, ma è una mia supposizione. dovresti chiedere a chi usa TP o cercare un manuale oppure vedere se la libreria che vuoi installare contiene un documento che spieghi come installarla

skintek1
29-10-2006, 15:25
ho sottomano un semplice programma scritto in pascal che legge un file e ne calcola i caratteri:


{ File: text1.pas }

{ Scopo: primo esempio di uso file di testo }

program LeggiFile;
{ Legge un file di testo e conta di quanti caratteri e' composto. }

var
fileinput : text; { file di testo }
ch : char; { carattere letto }
quanti : integer; { numero di caratteri nel file }

begin
assign(fileinput, 'INPUT.TXT'); { apertura del file in lettura }
reset(fileinput); { se il file non esiste si ha un
ERRORE a RUN TIME }

quanti := 0;
while not eof(fileinput) do
begin
read(fileinput, ch);
write(ch);
quanti := quanti + 1
end;
writeln ('Il file INPUT.TXT e'' composto di ', quanti, ' caratteri');

close(fileinput) { chiusura del file }
end. { LeggiFile }

quando lo lancio mi dice file not found,ma come mai mi dice che non trova il file???cioè lui il file lo cerca in tutto il pc??come fa a sapere quale file deve aprire se non li si specifica in quale directory andarlo a cercare??

mad_hhatter
29-10-2006, 15:36
cerca nella directory dove sta l'exe

skintek1
29-10-2006, 17:43
cerca nella directory dove sta l'exe


ok adesso lo legge,ho anche aggiunto il comando"readln" per bloccare il programma dopo che ha finito di eseguire le funzioni............

skintek1
29-10-2006, 17:57
ma un programma molto complesso come un sistema operativo (linux)in che linguaggio è scritto??

k0nt3
29-10-2006, 18:20
ma un programma molto complesso come un sistema operativo (linux)in che linguaggio è scritto??
linux è un sistema operativo e quindi ha esigenze particolari, per questo è scritto in C. ma in generale creare un programma complesso in C non è affatto consigliato.. ormai si usa la programmazione a oggetti (C++, Java, C# ecc..) che permette di organizzare meglio le cose (e in un programma complesso c'è molto da organizzare).
comunque quando programmavo in pascal avevo fatto un programmino abbastanza "complesso" tipo un giochino mongolo :D se ritrovo il floppy magari lo posto.

skintek1
29-10-2006, 18:58
linux è un sistema operativo e quindi ha esigenze particolari, per questo è scritto in C. ma in generale creare un programma complesso in C non è affatto consigliato.. ormai si usa la programmazione a oggetti (C++, Java, C# ecc..) che permette di organizzare meglio le cose (e in un programma complesso c'è molto da organizzare).
comunque quando programmavo in pascal avevo fatto un programmino abbastanza "complesso" tipo un giochino mongolo :D se ritrovo il floppy magari lo posto.


ah ok capito,se trovi il floppy posta che potrebbe interessarmi,io ho trovato un programma scritto sempre in pascal"in poche parole è il gioco di snake"ed è abbastanza complesso,cmq è possibile creare un semplice programma che come lo si esegue questo manda una email all'indirizzo specificato all'interno del programma??cioè è possibile creare un programma che interagisca con internet???

k0nt3
30-10-2006, 11:10
per mandare una mail in pascal devi scaricare indy10 perchè altrimenti è troppo complesso.. lo trovi qui http://www.indyproject.org/Sockets/fpc/indy-10.2.0.1.zip però è per freepascal e non penso funzioni con turbo pascal :(
freepascal è praticamente un clone di turbo pascal comunque.. lo puoi scaricare qui http://www.freepascal.org/down/i386/win32.html

poi ho provato a fare un programmino che manda una mail e sono riuscito a produrre qualcosa di grezzo che tu potrai migliorare ;)

program provamail;

uses
SysUtils,
IdMessage,
IdSMTP,
Classes;

var IdMsgSend: TIdMessage;
SMTP: TIdSMTP;
s : TStrings;

begin
s := TStringList.Create;
s.Add('corpo del testo riga1');
s.Add('corpo del testo riga2');
IdMsgSend := TIdMessage.Create;
with IdMsgSend do
begin
Body.Assign(s);
From.Text := 'mittente@host.it';
ReplyTo.EMailAddresses := 'mittente@host.it';
Recipients.EMailAddresses := 'destinatario@host.it';
Subject := 'oggetto';
end;

SMTP := TIdSMTP.Create;
SMTP.AuthType := atDefault;
SMTP.Username := 'nomeutente';
SMTP.Password := 'password';
SMTP.Host := 'smtp.mail.host.it';
SMTP.Port := 25;

SMTP.Connect;
SMTP.Send(IdMsgSend);
SMTP.Disconnect;
end.

ovviamente se non sai come funziona il protocollo SMTP tra poco mi chiederai il perchè di alcune funzioni :D
come minimo per funzionare il programma devi settare il server SMTP corretto (es. per yahoo è smtp.mail.yahoo.it) e la porta di solito è 25. poi devi mettere il nome utente e la password con cui ti connetti al server SMTP.. così a me funziona :sofico:

PS. ah ovviamente in options->directories devi aggiungere la cartella contente le unità di indy10 per freepascal. io ad esempio ho estratto l'archivio di indy in C:\Programmi\ e quindi ho aggiunto la directory C:\Programmi\indy-10.2.0.1\fpc
buona fortuna

skintek1
30-10-2006, 13:20
per mandare una mail in pascal devi scaricare indy10 perchè altrimenti è troppo complesso..
PS. ah ovviamente in options->directories devi aggiungere la cartella contente le unità di indy10 per freepascal. io ad esempio ho estratto l'archivio di indy in C:\Programmi\ e quindi ho aggiunto la directory C:\Programmi\indy-10.2.0.1\fpc
buona fortuna


ho appena scaricato indy10,ma cosa fa di preciso questo indy10.cioè che compito ha nel programma??


quando vado in options\directories ci sono 4 possibili:
exe e tpu directories
include directories
unit directories
object directories

da quello che ho capito devo mettere la cartella scaricata di indy10 in una delle 4 directories.....ma la scelta della directories è uguale o la devo mettere in una delle quattro??se si quale??

skintek1
30-10-2006, 15:40
ho messo la cartella di indy in opzion\directories

poi ho aperto il codice sorgente del programma che mi hai dato,ho messo email mittente e destinatario oggetto dell'email,poi ho messo "smtp.mail.yahoo.it"come serve per le email in uscita poi ho provato a compilare e mi da questo msg di errore:


error 15:file not found (sysutils.tpu)

puo' essere che mi da questo msg di errore perchè mi manca la libreria classes data dal comando "uses classes"anche perchè quando mi da questo msg di errore il cursore va su classes,magari non c'èntra niente ,chiedo conferma a voi.....

k0nt3
30-10-2006, 18:13
ho appena scaricato indy10,ma cosa fa di preciso questo indy10.cioè che compito ha nel programma??

indy contiene le unità IdMessage e IdSmtp (e molte altre) che servono per interagire con la rete (con i server di posta in questo caso). altrimenti bisognerebbe gestire la connessione a livello di TCP/IP e sarebbe a livello molto più basso

quando vado in options\directories ci sono 4 possibili:
exe e tpu directories
include directories
unit directories
object directories

da quello che ho capito devo mettere la cartella scaricata di indy10 in una delle 4 directories.....ma la scelta della directories è uguale o la devo mettere in una delle quattro??se si quale??
ops scusa io l'ho messo in units, ma hai scaricato freepascal? altrimenti devo cercare una versione di indy per il borland..

k0nt3
30-10-2006, 18:19
ho messo la cartella di indy in opzion\directories

poi ho aperto il codice sorgente del programma che mi hai dato,ho messo email mittente e destinatario oggetto dell'email,poi ho messo "smtp.mail.yahoo.it"come serve per le email in uscita poi ho provato a compilare e mi da questo msg di errore:


error 15:file not found (sysutils.tpu)

puo' essere che mi da questo msg di errore perchè mi manca la libreria classes data dal comando "uses classes"anche perchè quando mi da questo msg di errore il cursore va su classes,magari non c'èntra niente ,chiedo conferma a voi.....
sembra che manca proprio sysutils, niente.. come dicevo il programma l'ho compilato con freepascal.. se trovo un pò di tempo vedo se è possibile compilarlo in turbo pascal.
comunque come server SMTP devi usare un server a cui sei registrato, cioè io ho usato yahoo perchè ho un account su yahoo e quindi ho un nome utente e una password valide per il server di yahoo. se tu sei registrato da un'altra parte non devi far altro che ricavare l'indirizzo del server SMTP (di solito è siegato nel sito come fare), lo stesso che usi quando configuri un client di posta (lì serve anche POP3 per ricevere le mail però).

PS. ho notato ora che hai il contatto del messenger di yahoo :) quindi il server SMTP è quello che ho scritto io

skintek1
30-10-2006, 18:53
sembra che manca proprio sysutils come puoi vedere, niente.. come dicevo il programma l'ho compilato con freepascal.. se trovo un pò di tempo vedo se è possibile compilarlo in turbo pascal.
comunque come server SMTP devi usare un server a cui sei registrato, cioè io ho usato yahoo perchè ho un account su yahoo e quindi ho un nome utente e una password valide per il server di yahoo. se tu sei registrato da un'altra parte non devi far altro che ricavare l'indirizzo del server SMTP (di solito è siegato nel sito come fare), lo stesso che usi quando configuri un client di posta (lì serve anche POP3 per ricevere le mail però).

PS. ho notato ora che hai il contatto del messenger di yahoo :) quindi il server SMTP è quello che ho scritto io



si ma infatti io ho messo yahoo perchè anche io ho un account yahoo... come puoi vedere ho anche il simbolo "y" sotto il mio avatar....cmq devo mettere indy10 nella directories units,ma mi dice che manca sysutils perchè hoprovato con turbo pascal al posto di freepascal???cio freepascal ha la libreria sysutils che invece turbo pascal non ha???

k0nt3
30-10-2006, 19:03
si ma infatti io ho messo yahoo perchè anche io ho un account yahoo... come puoi vedere ho anche il simbolo "y" sotto il mio avatar....cmq devo mettere indy10 nella directories units,ma mi dice che manca sysutils perchè hoprovato con turbo pascal al posto di freepascal???cio freepascal ha la libreria sysutils che invece turbo pascal non ha???
si freepascal ha qualche cosa che turbo pascal non ha.. in un certo senso è pascal con qualche caratteristica di delphi. poi c'è da dire che turbo pascal non è più sviluppato da almeno un decennio.. non so nemmeno se esistono delle librerie come indy.. beh se hai tempo e voglia provalo sto freepascal ;)

skintek1
30-10-2006, 19:06
si freepascal ha qualche cosa che turbo pascal non ha.. in un certo senso è pascal con qualche caratteristica di delphi. poi c'è da dire che turbo pascal non è più sviluppato da almeno un decennio.. non so nemmeno se esistono delle librerie come indy.. beh se hai tempo e voglia provalo sto freepascal ;)



ok,scarico e provo....

skintek1
30-10-2006, 19:09
l'ultima versione va bene??la 2.0.4

k0nt3
30-10-2006, 19:10
l'ultima versione va bene??la 2.0.4
si è esattamente quella su cui ho compilato (e testato) il programma :D

skintek1
30-10-2006, 19:12
non mi funziona il link per il download sul sito che mi hai dato tu...mi da un messaggio di errore.....:



You tried to access the address ftp://ftp.uni-erlangen.de/pub/mirrors/freepascal/dist/i386-win32-2.0.4/fpc-2.0.4.i386-win32.exe, which is currently unavailable. Please make sure that the Web address (URL) is correctly spelled and punctuated, then try reloading the page.

550 Can't change directory to dist: No such file or directory
Make sure your Internet connection is active and check whether other applications that rely on the same connection are working.
Check that the setup of any Internet security software is correct and does not interfere with ordinary Web browsing.
If you are behind a firewall on a Local Area Network and think this may be causing problems, talk to your systems administrator.
Try pressing the F12 key on your keyboard and disabling proxy servers, unless you know that you are required to use a proxy to connect to the Internet. Reload the page.

lo fa anche a te??

skintek1
30-10-2006, 19:28
come non detto ,ho scelto un'altro mirror ed è andato 5 minuti e lo scarico..

k0nt3
30-10-2006, 20:48
perfetto! poi fammi sapere coma va.

ps. per il mio programmino in pascal purtroppo mi mancano dei files che devo avere sul buon vecchio 486... forse li recupero settimana prossima, ma avviso che è codice che ho scritto proprio agli inizi :fagiano:

skintek1
30-10-2006, 21:47
ma i file con estensione .pas si possono aprire con freepascal??
no perchè se provo ad aprirli mi da un messaggio di errore dicendomi:

"file di esempio"non è una applicazione di win32 valida..

ma perchè non me le apre???

k0nt3
30-10-2006, 21:57
ma i file con estensione .pas si possono aprire con freepascal??
no perchè se provo ad aprirli mi da un messaggio di errore dicendomi:

"file di esempio"non è una applicazione di win32 valida..

ma perchè non me le apre???
ma in che modo li apri? ti conviene aprire freepascal e cambiare directory di default (file->change dir) e metti la directory dove hai tutti i sorgenti. poi li apri da dentro freepascal

skintek1
30-10-2006, 22:54
ma in che modo li apri? ti conviene aprire freepascal e cambiare directory di default (file->change dir) e metti la directory dove hai tutti i sorgenti. poi li apri da dentro freepascal



li apro come li aprivo con turbo pascal,cioè apri con e poi ho scelto freepascal solo che mi ha dato il msg che ho scritto prima....
ho provato a cambiare la directories e mettere quella dove ho i file .pas ,ma poi quando vado a fare file\open ritorna a cercare ancora nella directories di default......
invece di cambiare la directories non faccio prima a spostare un file.pas nella directories che è di default???è lo stesso???o devo per forza cambiare directories???

k0nt3
30-10-2006, 23:07
li apro come li aprivo con turbo pascal,cioè apri con e poi ho scelto freepascal solo che mi ha dato il msg che ho scritto prima....
ho provato a cambiare la directories e mettere quella dove ho i file .pas ,ma poi quando vado a fare file\open ritorna a cercare ancora nella directories di default......
invece di cambiare la directories non faccio prima a spostare un file.pas nella directories che è di default???è lo stesso???o devo per forza cambiare directories???
no puoi fare come vuoi! io ho cambiato directory per avere più ordine.. strano che non te l'ha cambiata.
ma non sei ancora riuscito a compilare il programma quindi?

skintek1
30-10-2006, 23:10
ho provato a compilare il programma che manda le email,quando vado a compilarlo nel filedilog degli errori che c'è in basso a freepascal mi dice:

fatal:Cant find unit idmessage
fatal:compilation aborted

cosè successo sta volta??

k0nt3
30-10-2006, 23:12
ho provato a compilare il programma che manda le email,quando vado a compilarlo nel filedilog degli errori che c'è in basso a freepascal mi dice:

fatal:Cant find unit idmessage
fatal:compilation aborted

cosè successo sta volta??
mancano le librerie indy.. che directory hai messo in "unit directories"?

skintek1
30-10-2006, 23:18
mancano le librerie indy.. che directory hai messo in "unit directories"?



ah gia è vero mi ero dimenticato di quel passaggio........
con freepascal se vado su opzioni\directories qui c'è l'opzione aggiungi libreria devo usare quella???

k0nt3
30-10-2006, 23:23
ah gia è vero mi ero dimenticato di quel passaggio........
con freepascal se vado su opzioni\directories qui c'è l'opzione aggiungi libreria devo usare quella???
a me appare una finestrella divisa in tab (units, include files, libraries ecc..) e io in units ho aggiunto la riga "C:\Programmi\indy-10.2.0.1\fpc"

skintek1
30-10-2006, 23:33
a me appare una finestrella divisa in tab (units, include files, libraries ecc..) e io in units ho aggiunto la riga "C:\Programmi\indy-10.2.0.1\fpc"


ho aggiunto la libreria ma mi da ancora quel msg di errore......
ma questo idMessage si trova dentro la cartella di indy\fpc??

k0nt3
30-10-2006, 23:41
ho aggiunto la libreria ma mi da ancora quel msg di errore......
ma questo idMessage si trova dentro la cartella di indy\fpc??
certo che è lì dentro.. controlla per sicurezza ma io ce l'ho.
hai provato fare build al posto di compile?

skintek1
30-10-2006, 23:44
cmq c'è qualcosa che non va,ti spiego..
per poter compilare questo programma ho dovuto fare un copia incolla del codice,perchè freepascal non mi apre i file.pas,come ti ho gia detto prima....poi se io salvo il file e poi chiudo freepascal e vado a cliccare sul file che ho salvato non me lo apre e mi da appunto il msg file.pas non è unapplicazione valida di win32,se pero' io apro freepascal e faccio file\open allora cosi me lo apre senza problemi,ma è normale o c'è qualcosa che non va??
magari ho sbagliato qualcosa mentre lo installavo,perchè mi ricordo che c'era un'opzione da scelgiere ed io ho scelto win32.....boh non so che pensare....

skintek1
30-10-2006, 23:45
certo che è lì dentro.. controlla per sicurezza ma io ce l'ho.
hai provato fare build al posto di compile?



ho controllato nella cartella e ce ne sono un bel po di file con il nome idmessage,cmq ho provato a fare anche build ma mi da ancora il solito msg....

k0nt3
30-10-2006, 23:53
cmq c'è qualcosa che non va,ti spiego..
per poter compilare questo programma ho dovuto fare un copia incolla del codice,perchè freepascal non mi apre i file.pas,come ti ho gia detto prima....poi se io salvo il file e poi chiudo freepascal e vado a cliccare sul file che ho salvato non me lo apre e mi da appunto il msg file.pas non è unapplicazione valida di win32,se pero' io apro freepascal e faccio file\open allora cosi me lo apre senza problemi,ma è normale o c'è qualcosa che non va??
magari ho sbagliato qualcosa mentre lo installavo,perchè mi ricordo che c'era un'opzione da scelgiere ed io ho scelto win32.....boh non so che pensare....
infatti a me li apre i files.. :confused:
ma li apri con fp.exe?

skintek1
30-10-2006, 23:59
infatti a me li apre i files.. :confused:
ma li apri con fp.exe?


con il programma riesco ad aprirli,cioè se apro freepascal e poi faccio file\open riesco ad aprirli,ma se chiudo freepascal e vado a cliccare direttamente sul file.pas non me lo apre e mi da il msg che ti ho detto prima....è molto strana come cosa..........prima con turbo pascal me li apriva anche cosi....

k0nt3
31-10-2006, 00:04
con il programma riesco ad aprirli,cioè se apro freepascal e poi faccio file\open riesco ad aprirli,ma se chiudo freepascal e vado a cliccare direttamente sul file.pas non me lo apre e mi da il msg che ti ho detto prima....è molto strana come cosa..........prima con turbo pascal me li apriva anche cosi....
no infatti a me li apre anche così! devi associare i files .pas a fp.exe che è nella cartella bin di freepascal (FPC)
comunque non so più cosa dirti.. a me lo ha compilato subito :boh: vedremo domani :D

skintek1
31-10-2006, 02:05
ma il bello è che i file.pas gli ho gia associati per farli aprire con freepascal,ho cliccato il tasto destro poi apricon,poi programma e poi ho spuntato la casella "usa sempre il programma selezionato per aprire questo tipo di file"e poi ho cliccato su freepascal e poi ok,quindi in teoria ogni volta che apro un file.pas dovrebbe aprirmelo con freepascal........manon so nemmeno io come mai non lo fa......... a domani che oggi si è gia fatto tardi........

skintek1
31-10-2006, 19:30
sono riuscito a compilarlo,ho cambiato la directories di "indy" e non ha dato errori,poi ho lanciato l'exe,solo che non funziona ,non invia nessun email......

skintek1
31-10-2006, 19:49
ho messo tutto giusto,mittente destinatario username psw,server ,ma non mi invia niente,ho provato anche a cambiare email e quindi anche server,ma non va lo stesso,ma tu l'hai provato e ti funziona??

k0nt3
01-11-2006, 17:21
ho messo tutto giusto,mittente destinatario username psw,server ,ma non mi invia niente,ho provato anche a cambiare email e quindi anche server,ma non va lo stesso,ma tu l'hai provato e ti funziona??
scusa se non ti rispondo molto ma ho problemi con la connessione :(
comunque io l'ho provato e ha funzionato!! :D non so se puoi aver fatto altri errori.. controlla ancora il server, la mail, la password... se sai fare il debug guarda a che istruzione fallisce ecc.. altrimenti stampa sullo schermo tutto quello che succede e vedi se si ferma o da errori.
ciao

skintek1
01-11-2006, 17:29
una cosa,ma una volta che l'ho compilato devo cliccare sul file.exe,ma si apre e si chiude subito il programma,per farlo rimanere aperto se non sbaglio bisognerebbe inserire "readln"senza il ";",se lo inserisco non si dovrebbe chiudere il programma una volta che ha finito di eseguire le funzioni,sbaglio??

k0nt3
02-11-2006, 12:24
una cosa,ma una volta che l'ho compilato devo cliccare sul file.exe,ma si apre e si chiude subito il programma,per farlo rimanere aperto se non sbaglio bisognerebbe inserire "readln"senza il ";",se lo inserisco non si dovrebbe chiudere il programma una volta che ha finito di eseguire le funzioni,sbaglio??
si è esatto, se metti readln (il ; è facoltativo perchè è l'ultima istruzione) il programma rimane aperto finchè non premi un tasto.
solo una cosa... sei sicuro di aver lanciato l'exe giusto? controlla che sia effettivamente quello che hai appena compilato... nel caso lancialo direttamente dentro free pascal (ctrl+F9).
se proprio non funziona ancora potrebbe essere anche un problema di firewall, perchè la comunicazione è su una porta diversa da 80 e perciò di solito il firewall la blocca.

skintek1
02-11-2006, 13:37
si è esatto, se metti readln (il ; è facoltativo perchè è l'ultima istruzione) il programma rimane aperto finchè non premi un tasto.
solo una cosa... sei sicuro di aver lanciato l'exe giusto? controlla che sia effettivamente quello che hai appena compilato... nel caso lancialo direttamente dentro free pascal (ctrl+F9).
se proprio non funziona ancora potrebbe essere anche un problema di firewall, perchè la comunicazione è su una porta diversa da 80 e perciò di solito il firewall la blocca.


ho messo readln prima del end. finale ,poi ho provato a lanciarlo direttamente da freepascal e alla fine mi da una finestrella "come quella che c'è quando si compila un programma"con scritto:

program email.exe
exited whit
exit code =217

che mi sta dicendo con questo msg???


cmq non funziona neanche lanciandolo da freepascal...... :(

k0nt3
02-11-2006, 21:20
ho messo readln prima del end. finale ,poi ho provato a lanciarlo direttamente da freepascal e alla fine mi da una finestrella "come quella che c'è quando si compila un programma"con scritto:

program email.exe
exited whit
exit code =217

che mi sta dicendo con questo msg???


cmq non funziona neanche lanciandolo da freepascal...... :(
codice 217 significa che è stata lanciata un'eccezione e non è stata gestita dal programma...
al posto di

SMTP.Connect;
SMTP.Send(IdMsgSend);
SMTP.Disconnect;

prova a mettere

SMTP.Connect;
try
SMTP.Send(IdMsgSend);
finally
SMTP.Disconnect;
end;

che "prova" nel vero senso della parola a eseguire l'istruzione send, e in qualunque caso esegue disconnect (anche se non riesce la send).
vedi se ti da un errore diverso.. così magari si capisce il problema

skintek1
02-11-2006, 21:32
SMTP.Connect;
try
SMTP.Send(IdMsgSend);
finally
SMTP.Disconnect;
end;



l'end finale è con il punto non con il ";"sbaglio???

k0nt3
02-11-2006, 21:59
l'end finale è con il punto non con il ";"sbaglio???
dopo end; c'è anche end. ;) il primo serve a chiudere il blocco try

skintek1
02-11-2006, 22:38
mi da 3 messaggi di errore:

mail.pas(35.4)error:identifier not found "try"
mail.pas(35.4)fatal:you need objfpc (-S2)or delphi (-Sd)mode to compile
mail.pas(35,4)fatal:compilation aborted

ho sbagliato modo per compilarlo???

k0nt3
02-11-2006, 22:43
mi da 3 messaggi di errore:

mail.pas(35.4)error:identifier not found "try"
mail.pas(35.4)fatal:you need objfpc (-S2)or delphi (-Sd)mode to compile
mail.pas(35,4)fatal:compilation aborted

ho sbagliato modo per compilarlo???
ma in options->compiler che opzioni hai barrato? io ho free pascal dialect... tu?

skintek1
02-11-2006, 23:02
ma in options->compiler che opzioni hai barrato? io ho free pascal dialect... tu?


a destra ho anche io come te,a sinistra sotto syntax switches ho allow label and goto....

skintek1
02-11-2006, 23:08
il msg di errore che mi da mi dice che ho bisogno di delphi o object freepascal per compilarlo,se nell'opzione\compiler metto la spunta a delphi dici che va bene???

k0nt3
03-11-2006, 07:48
il msg di errore che mi da mi dice che ho bisogno di delphi o object freepascal per compilarlo,se nell'opzione\compiler metto la spunta a delphi dici che va bene???
si scusa ho sbagliato.. devi avere spuntato o object pascal extension o delphi... hai già provato?

skintek1
03-11-2006, 12:25
si scusa ho sbagliato.. devi avere spuntato o object pascal extension o delphi... hai già provato?



ho provato a compilarlo con delphi e alla fine mi da il msg che mi dava prima:

program email.exe
exited whit
exit code =217


ho provato a lanciarlo sia dall'icona del programma che da freepascal ma il risultato è sempre lo stesso,non va.... :(

k0nt3
03-11-2006, 12:43
ho provato a compilarlo con delphi e alla fine mi da il msg che mi dava prima:

program email.exe
exited whit
exit code =217


ho provato a lanciarlo sia dall'icona del programma che da freepascal ma il risultato è sempre lo stesso,non va.... :(
mmm ma come sei connesso a internet? attraverso un proxy? in qualche maniera strana?

skintek1
03-11-2006, 12:57
mmm ma come sei connesso a internet? attraverso un proxy? in qualche maniera strana?


condivido la connessione internet con un'altro pc che mi fa da "server"

k0nt3
03-11-2006, 13:03
condivido la connessione internet con un'altro pc che mi fa da "server"
riesci a provare il programma su un pc collegato direttamente a internet? penso sia quello il problema.. per farlo andare su una connessione indiretta ci sarà da impostare un pò di cose. io l'ho provato di nuovo ora e ti confermo che manda veramente la mail :fagiano:

skintek1
03-11-2006, 13:36
riesci a provare il programma su un pc collegato direttamente a internet? penso sia quello il problema.. per farlo andare su una connessione indiretta ci sarà da impostare un pò di cose. io l'ho provato di nuovo ora e ti confermo che manda veramente la mail :fagiano:



ho provato anche con l'altro pc ,ma non va...... :(

k0nt3
03-11-2006, 21:56
ho provato anche con l'altro pc ,ma non va...... :(
guarda adesso ho compilato questo codice:
program provamail;

uses
SysUtils,
IdMessage,
IdSMTP,
Classes;

var IdMsgSend: TIdMessage;
SMTP: TIdSMTP;
s : TStrings;
mailFrom, mailTo : String;

begin
s := TStringList.Create;
s.Add('corpo del testo riga1');
s.Add('corpo del testo riga2');
IdMsgSend := TIdMessage.Create;
with IdMsgSend do
begin
Body.Assign(s);
writeln('inserisci indirizzo mittente:');
readln(mailFrom);
From.Text := mailFrom;
ReplyTo.EMailAddresses := mailFrom;
writeln('inserisci indirizzo destinatario:');
readln(mailTo);
Recipients.EMailAddresses := mailTo;
Subject := 'oggetto';
end;

SMTP := TIdSMTP.Create;
SMTP.AuthType := atDefault;
writeln('inserisci nome utente:');
readln(SMTP.Username);
writeln('inserisci password');
readln(SMTP.Password);
SMTP.Host := 'smtp.mail.yahoo.it';
SMTP.Port := 25;

SMTP.Connect;
try
SMTP.Send(IdMsgSend);
finally
SMTP.Disconnect;
end;
end.

l'ho provato e funziona.. ora lo puoi scaricare già compilato qui http://ckonte.googlepages.com/provamail.exe
se non ti funziona ancora mi sa che il problema è un firewall che blocca la connessione o qualcosa del genere

ps. magari se qualcuno esterno può provarlo :stordita:
pps. però ci vuole un account yahoo.. se serve faccio una versione in cui si sceglie anche il server smtp

skintek1
03-11-2006, 23:11
ho compilato il codice che mi hai dato ,e me l'ha compilato senza problemi ,poi l'ho lanciato ed è rimasta aperta la finestra del programma con scritto l'email del mittente(cioè la mia)poi ho fatto "invio" e mi ha stampato l'email del destinatario poi invio e mi ha spampato l'username poi la psw,ma l'email non me l'ha mandata.......
ha fatto un po come un semplice programma che stampa quello che mettiamo dopo "writeln".....non so proprio come mai non vada,cmq ho provato anche senza firewall e non va lo stesso....... :( :(

k0nt3
04-11-2006, 09:37
ho compilato il codice che mi hai dato ,e me l'ha compilato senza problemi ,poi l'ho lanciato ed è rimasta aperta la finestra del programma con scritto l'email del mittente(cioè la mia)poi ho fatto "invio" e mi ha stampato l'email del destinatario poi invio e mi ha spampato l'username poi la psw,ma l'email non me l'ha mandata.......
ha fatto un po come un semplice programma che stampa quello che mettiamo dopo "writeln".....non so proprio come mai non vada,cmq ho provato anche senza firewall e non va lo stesso....... :( :(
ma quando ti chiede la mail del mittente (ma anche destinatario, utente e password) scrivi la tua mail e premi invio?

skintek1
04-11-2006, 11:57
ma quando ti chiede la mail del mittente (ma anche destinatario, utente e password) scrivi la tua mail e premi invio?



no,io non scrivo niente me lo stampa lui(il programma)io clicco sull'icona del programma si apre la finestra con gia scritto l'email del mittente(cioè la mia)poi io clicco invio e il programma da solo stampa l'email del destinatario e cosi' via con username e psw dopo la psw schiaccio invio e si chiude la finestra del programma.......adesso l'ho provato sul'altro pc collegato direttamente ad internet e senza firewall..... :( ma il risultato è sempre quello.....

k0nt3
04-11-2006, 13:43
no,io non scrivo niente me lo stampa lui(il programma)io clicco sull'icona del programma si apre la finestra con gia scritto l'email del mittente(cioè la mia)poi io clicco invio e il programma da solo stampa l'email del destinatario e cosi' via con username e psw dopo la psw schiaccio invio e si chiude la finestra del programma.......adesso l'ho provato sul'altro pc collegato direttamente ad internet e senza firewall..... :( ma il risultato è sempre quello.....
veramente per come ho scritto il codice dovrebbe chiederti: inserire mail mittente e tu scrivi la mail del mittente e poi invio
a quel punto ti chiede la mail del destinatario e fai la stessa cosa ecc..
la funzione writeln stampa a schermo delle frasi, mentre readln legge da tastiera e memorizza in una variabile String.
magari leggiti qualche guida su pascal.. a una prima occhiata ho trovato questa http://www.taoyue.com/tutorials/pascal/

skintek1
04-11-2006, 15:04
veramente per come ho scritto il codice dovrebbe chiederti: inserire mail mittente e tu scrivi la mail del mittente e poi invio
a quel punto ti chiede la mail del destinatario e fai la stessa cosa ecc..
la funzione writeln stampa a schermo delle frasi, mentre readln legge da tastiera e memorizza in una variabile String.
magari leggiti qualche guida su pascal.. a una prima occhiata ho trovato questa http://www.taoyue.com/tutorials/pascal/




si si lo so mi sono gia letto un bel po di guide.....cmq avevo lanciato il vecchio programma con il vecchio codice,adesso ho provato con il nuovo codice e mi dice appunto inserire email mittente destinatario username e psw,poi invio e mi da sempre il msg di exitcode 217... :(

skintek1
05-11-2006, 12:38
ma per aggiungere una libreria in freepascal basta che metto il percorso (directories)della cartella dove sta il file della libreria in options\directories\libraries???

k0nt3
05-11-2006, 13:48
ma per aggiungere una libreria in freepascal basta che metto il percorso (directories)della cartella dove sta il file della libreria in options\directories\libraries???
si però per usarla devi mettere il nome della libreria insieme agli altri "uses"

per il fatto che non ti funziona il programma non so più cosa dire se tutti i dati sono corretti.. farò ulteriori prove in settimana perchè ormai è una questione personale :D

skintek1
05-11-2006, 13:53
si però per usarla devi mettere il nome della libreria insieme agli altri "uses"

per il fatto che non ti funziona il programma non so più cosa dire se tutti i dati sono corretti.. farò ulteriori prove in settimana perchè ormai è una questione personale :D



ma hai provato a dare il codice anche ad altri oltre che a me???

skintek1
05-11-2006, 13:54
si però per usarla devi mettere il nome della libreria insieme agli altri "uses"

per il fatto che non ti funziona il programma non so più cosa dire se tutti i dati sono corretti.. farò ulteriori prove in settimana perchè ormai è una questione personale :D




e si sta' diventando una sfida...... :D

cecioprogressiv
16-11-2006, 20:47
Ciao a tutti! Io ho scaricato il Tubro Pascal 7.0 normalmente su Internet..quello nella cartella "tp" poi "bin"..ho windows xp sp2..appena apro il pascal mi si apre una finestra completamente nera e dopo 2-3 secondi mi si richiude!Mi potreste dire come mai?Grazie! :help: