Off Topic
In questa pagina potete
chiacchierare di argomenti che non riguardano il progetto.
Vi prego di inserire un titolo che chiarisca che tipo di domanda state ponendo.
chiarimento sulla competizione riguardante la programmazione in C
Salve, vorrei sapere se avete intensione di partecipare a questa competizione sul C e eventualmente saperne qualcosa di più, tipo se partecipate quando avrà luogo + o - ?
--
GabrieleGristina - 20 Mar 2006
Re: chiarimento sulla competizione riguardante la programmazione in C
vat curc
--
FrancescoPaturzo - 21 Mar 2006
Re: chiarimento sulla competizione riguardante la programmazione in C
Ma tu non sei quello che mi ha mandato una mail e mi ha chiesto "come si fa un buffer" ? ...
"vat curc" lo vai a dire a tu sorella o a tu madre
pirla
--
GabrieleGristina - 01 Apr 2006
piccole curiosità nella vita di un programmatore, prima parte
per quante volte si esegua un programma,
per quante siano le sue istanze contemporanee,
per quali che siano le condizioni del sistema operativo,
per
quale che sia il sistema operativo stesso,
l'indirizzo di una variabile globale, inizializzata o non,
non cambia mai; quasi che fosse amore...
sembra un'ode, vero?
#include <stdlib.h>
#include <stdio.h>
int Lol;
int
main(
void
)
{
printf("0x%X\n",
&Lol
);
return 0;
}
--
StefanoLombardi - 03 May 2006
Domanda riguardo cygwin
Salve a tutti, flame inutili a parte, volevo chiedere se qualcuno fosse riuscito ad usare in modo decente ddd con cygwin
Personalmente sto usando cygwin per sviluppare i moduli1 e 2, pero' inizio a risentire della mancanza di un debugger, ho installato cygwinX (emulatore del server X) e il ddd.. i pacchetti ci sono tutti e gdb funziona egregiamente da linea di comando
Il problema e' che quando DDD va' a lanciare l'instanza di gdb al suo interno, il processo di gdb si "congela" e DDD aspetta a tempo indefinito (o meglio finche non lo termino !)
se avete qualche idea dite pure
--
ValerioColtre - 04 May 2006
problemi con l'handle al mod 3
Ragazzi ma secondo voi da dove ce lo recuperiamo l'handle per il modulo tre se l'unica funzione del due che lo ritorna è
OpenDBF() e non possiamo includere LPC_M2_Include dove risiede la struct di handling dei file?
--
TullioSebastiani - 04 May 2006
Re: problemi con l'handle al mod 3
a che ti serve "recuperare un handle"? tutte e tre le funzioni del modulo 3 ne ricevono uno in input.
--
StefanoLombardi - 04 May 2006
Penso la GetDBFInfo() per ricevere FILE*
Credo tu voglia dire come recuperare FILE* per poter leggere e scrivere un file?.certo che con la getDBFinfo ti ritorna un int, ma ti riempie anche la struttura DBFInfo che tu mandi come parametro, e in questa struttura è presente anche il file pointer,spero di non sbagliarmi,credo sia cosi!
--
AlessioDezi - 04 May 2006
Re: Penso la GetDBFInfo?() per ricevere FILE*
hai ragione intendevo il file pointer e non mi ero ricordato di DBF_INFO_t.Comunque mi sembra di aver capito che molti di noi(me compreso) hanno creato una nuova struttura per l'handling dei file e questo sta creando non poca confusione....sarebbe stato meglio usare DBF_INFO_t e basta!Comunque grazie!
--
TullioSebastiani - 04 May 2006
Problema con la free()
Ho questo problema quasi ogni volta che tento di fare una free ovvero un errore di invalid pointer che mi termina il programma con Aborted,la libreria che uso é la malloc.h,l'errore mi avviene anche per pezzi semplici di codice come nell'esempio oppure a volte capita che la prima volta non dia problemi ma la volta successiva sì per questo identico blocco di codice,qualche idea al riguardo o qualcuno col mio stesso problema?
char Err[256];
sprintf(Err, "Errore allocazione memoria");
LPCGestioneErrore(LPC_NO_MEMORY, "Insert", Err);
free(Err);
--
ValerioMauro - 04 May 2006
Re: Problema con la free
E certo che ti da errore, tu stai liberando "Err" che è una stringa : "Errore allocazione memoria\0" Oltre ad essere una free illegale, non vedo prorpio l'utilità nel liberare Err, semmai dovrai liberare il puntatore che ti dà l'errore !!!
--
GiuseppeDiFederico - 04 May 2006
Problema modulo 3 con lettura del file
Nelle specifiche c'è scritto che un record è dato dalla somma della lunghezza dei campi. La cosa che non capisco è che dentro ai file dove ci fanno i test (i vari
ProvaTest.dbf) ci sono solo le definizioni dei campi. Io quindi come faccio a leggere il valore di un certo campo? Dove si trova?
--
EmanueleGallo - 05 May 2006
piccole curiosità nella vita di un programmatore, seconda parte
il vero amore non esiste, e il motivo è che quando ne nasce uno intervengono forze esterne e cause maggiori di ogni sorta per distruggerlo. facciamo una prova, impersoniamo momentaneamente una forza esterna che deve a tutti i costi distruggere il meraviglioso idìllio che si è creato tra la variabile globale e il suo indirizzo.
#include <stdlib.h>
#include <stdio.h>
int Lol = 0;
int
main(
void
)
{
printf("0x%X\n",
// qui muore un vero amore :-\
&Lol,
Lol
);
return 0;
}
--
StefanoLombardi - 06 May 2006
Come si sposta L'EOF
Ragazzi, ho già fatto questa domanda nel forum, ma spero che voi potrete darmi qualche consiglio in + , va la riporto:
Come si muove L'EOF ?!?
Ho dei problemi nel capire come si comporta il programma quando inserisco un record, mi spiego meglio: Nell'insert noi dobbiamo translare tutti i record successivi a quello da inserire "una posizione più in basso" quindi, la posizione dell'EOF cambierà dopo questa operazione, ma il programma lo farà in modo automatico, o siamo noi che dobbiamo settargli in qualche modo il nuovo EOF. Se come penso il programma lo fa in modo automatico, come fare a scrivere qualcosa dopo la fine del nostro FILE, sò che per la maggior parte questa può sembrare una cacchiata, ma non riesco proprio a concepire il concetto di scrittura dopo la fine del file (Per quanto riguarda la Delete, ho capito bene come fare visto che è scritta esplicitamente nelle specifiche la funzione da utilizzare) !!
--
GiuseppeDiFederico - 06 May 2006
Re: Come si sposta L'EOF
Ti rispondo con una metafora: "come si gonfia un palloncino?"
--
AndreaSterbini - 06 May 2006
Re: Re: Come si sposta l'EOF
e come si soffia in un file...? O_o
--
AlbertoLaRocca - 06 May 2006
programming challenges......
qualcuno sa dove si può comprare il libro di allenamento per la gara di programmazione?Vi ringrazio!
--
TullioSebastiani - 07 May 2006
piccole curiosità nella vita di un programmatore, terza parte
continua la saga che ha tenuto col fiato sospeso i 4 o 5 studenti che frequentano queste pagine :|
la nostra povera variabile globale ora è rimasta senza indirizzo, e solamente un NULL tra le mani. prima aveva tutto, ora non ha niente: se prima era orgogliosa di mostrare al mondo il suo output (a proposito dell'output, in Linux lo user space si trova nella memoria alta?) adesso tutto ciò che ha da darci è un triste 0x0.
forse potremmo darle un po' di felicità con un altro indirizzo...
#include <stdlib.h>
#include <stdio.h>
int Lol;
int
main(
void
)
{
printf("0x%X\n"
// chissà, forse le piacerà... :-\
&Lol
);
return 0;
}
--
StefanoLombardi - 07 May 2006
Blank Record
Ragazzi non ho capito come è formato questo
BlankRecord. che significa che deve essre riempito di Null, s poi ci dicono CHARACTER: Lunghezza del campo + NULL, che significa che se la lunghezza del campo è 5 dentro ci va /0/0/0/0/0/0 ?
--
GiuseppeDiFederico - 08 May 2006
Re: Blank Record
Esatto, visto che NULL, zero e '\0' sono la stessa cosa (a parte il numero di bytes occupati).
--
AndreaSterbini - 08 May 2006
Lettura primo record
Ma la lettura di un record non va fatta a partire dalla posizione
HeaderLen del .dbf e leggendo
RecordLen caratteri? Ho un problema che mi sta torturando da due intere giornate
--
MassimilianoNatale - 11 May 2006
Re: Lettura primo record
fseek(DBFInfo.fp,DBFInfo.HeaderLen + (
RecordLen * n),SEEK_SET)
Ti piazzi subito dopo l'ennesimo record, se, invece ti vuoi piazzare all'inizio dello stesso moltiplica anzichè che per n, ovviamente per n-1 .
P.S TENIAMOLA VIVA PER AIUTARCI QUESTA PAGINA RAGAZZI, NON SE LA STA INCULANDO NESSUNO QUANDO INVECE LA POTREMMO SFRUTTARE MOLTO MEGLIO
--
GiuseppeDiFederico - 12 May 2006
Re: Re: Lettura primo record
E' quello che faccio anch'io. Il problema che ho consiste nel fatto che pur posizionandomi sul byte 117 (del primo test sulla funzionalità della
InsertBlankRecord()) e leggendo 37 byte, quella lettera 'A' proprio non mi compare nel buffer relativo al record da spostare
--
MassimilianoNatale - 12 May 2006
Problema con test della InsertRecord()
--
EmanueleGallo - 12 May 2006
Problema con test della InsertRecord()
Allora nel mio codice ho scritto: if((
IsDBFHandle(handle)!=LPC_OK) || ((Where!=TOP) || (Where!=BOTTOM) || (Where!=CURRENT))). Se una di queste condizioni si verifica lancia l'errore. Perché in ogni test che mi fa la
InsertRecord() mi ritorna sempre "handle non valido o where non valido"?
--
EmanueleGallo - 12 May 2006
Re: Re: Lettura primo record
Ma HEADERLEN è la lunghezza della parte fissa o dell'intero header? Perché devi calcolare che dopo la parte fissa ci sono le definizioni dei campi.
--
EmanueleGallo - 12 May 2006
Re: Re: Re: Lettura primo record
Innanzitutto sono 38 e poi prima di fare la read fai una fflush il file viene modificate e siccome rimane aperto nn ti legge la A...c'ho passato 2 giorni!!!
--
AlessandroMarinelli - 12 May 2006
Re: Problema con test della InsertRecord?
Metti && nn ||.
--
AlessandroMarinelli - 12 May 2006
Re: Problema con test della InsertRecord?()
Scusa ma se metto && vuol dire che entrambi devono essere errati. Invece a me basta che solo uno sia errato tra quelli per poter lanciare l'errore. O sbaglio?
--
EmanueleGallo - 12 May 2006
Re: Problema con test della InsertRecord
allora metti && solo nei test della Where...
--
AlessandroMarinelli - 12 May 2006
Re: Problema con test della InsertRecord
Prova a mettere if(ret_val=IsDBFHandle(handle))!= LPC_OK)
--
AlessandroMarinelli - 12 May 2006
Lettura primo record
Qualcuno sa dirmi per quale oscuro motivo questa lettura
fread(buffer, sizeof(char), 300, DBFInfo.fp)
mi legge soltanto caratteri nulli?
Non dovrebbe leggermi il file Prova.dbf con tutte le informazioni in esso registrate?
--
MassimilianoNatale - 12 May 2006
Per Alessandro Marinelli
Grazie!!! Anch'io, con questo, faccio 3 giorni
Non facevo la fflush() penso proprio che il mio problema sia dovuto da questo
--
MassimilianoNatale - 12 May 2006
Re: Lettura primo record
Ma hai letto cosa ti ho scritto prima????devi fare un fflush!!!!prima della read!!!
--
AlessandroMarinelli - 12 May 2006
Problema con test della InsertRecord?
Grazie mille era come dicevi tu (cioè mettere solo && nei test della where). Come al solito adesso sorge un altro problema. Leggo il numero di record dalla DBF_Info_t, lo pongo in una variabile tmp e poi faccio la conversione in network byte order, infine scrivo nel file tramite questa istruzione: fwrite(&tmp, sizeof(long), 1, info->fp). Il problema è che non scrive quattro byte ma 1 solo come mai?
--
EmanueleGallo - 12 May 2006
Re: Problema con test della InsertRecord
xkè invece di mettere sizeof(long) nn metti sizeof(char) 4?così sei sicuro di quanti byte scrivi...
--
AlessandroMarinelli - 12 May 2006
Re: Re: Problema con test della InsertRecord
Ho provato a scrivere sizeof(char)*4, ma la fwrite mi restituisce sempre 1.
--
EmanueleGallo - 12 May 2006
Re: Re: Re: Problema con test della InsertRecord
fwrite(&tmp, sizeof(char), 4, info->fp)
--
AlessandroMarinelli - 12 May 2006
Re: Re: Problema con test della InsertRecord?
Ecco perché!!!! La fwrite è giusta perché ritorna il numero di elementi scritti (non il numero di bytes). Quindi è giusto che ritorni 1, ho sbagliato il controllo successivo, credo.
--
EmanueleGallo - 12 May 2006
Re: Re: Problema con test della InsertRecord
Poi dici che non diventi scemo..... In un punto più in là del programma la stessa chiamata di fwrite scritta poco fa, mi restituisce 4. :|
--
EmanueleGallo - 12 May 2006
Re: Re: Problema con test della InsertRecord?
Risolto
--
EmanueleGallo - 12 May 2006
Lunghezza record
La lunghezza di un record è data da
RecordLen(somma di character+numeric+date+logical) ed è uguale per tutti i record(vuoti e non)?
Quindi per spostare record su di un file leggo dall'inizio del record che mi interessa per
RecordLen byte?
E che cos'è un record bianco? Non ho ben capito come si crea
Grazie per l'eventuale aiuto
--
ColocciDaniele - 12 May 2006
Re: Lunghezza record
Si esattamente. Un record bianco non è altro che un record di
RecordLen byte riempito di tutti NULL.
--
EmanueleGallo - 12 May 2006
Questa è la prima parte dell'header di
ProvaTest2.dbf, ma prima del timestamp io non vedo il record corrente. Dov'è di preciso? Grazie.
P r o v a \0 \0 \0 \0 \0 \0 \0 006 \0 \0 \0
002 \0 u \0 & D J 016 027 C a m p o 1 \0
\0 \0 \0 \0 \0 001 \0 \n.......
--
EmanueleGallo - 12 May 2006
Una domanda sulla ftruncate()
Volevo inoltre capire anche come funziona la ftruncate(). Cioè la parte che viene eliminata, da dove la prende? Dalla fine del file?
--
EmanueleGallo - 12 May 2006
Risolto
--
EmanueleGallo - 12 May 2006
Adesso praticamente me li passa tutti, tranne l'ultimo (in particolare non mi passa il memset di
ConfrontaFiles() ). Questi sono i due file (Prova.dbf e
ProvaTest4.dbf). In effetti in Prova.dbf la C si trova 21 "posizioni" dopo la A mentre in
ProvaTest4.dbf si trova 27 posizioni dopo. Non capisco perché.
P r o v a \0 \0 \0 \0 \0 \0 \0 006 \0 \0 \0
004 \0 u \0 & D d 271 324 C a m p o 1 \0
\0 \0 \0 \0 \0 001 \0 \n C a m p o 2 \0 \0
\0 \0 \0 \0 002 \0 \b C a m p o 3 \0 \0 \0
\0 \0 \0 003 \0 004 C a m p o 4 \0 \0 \0 \0
\0 \0 004 \0 001 C a m p o 5 \0 \0 \0 \0 \0
\0 001 \0 001 C a m p o 6 \0 \0 \0 \0 \0 \0
002 \0 \b \0 \0 \0 \0 \0 \0 B \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 A
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
\0 \0 \0 \0 \0 C \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
P r o v a \0 \0 \0 \0 \0 \0 \0 006 \0 \0 \0
004 \0 u \0 & D J 016 027 C a m p o 1 \0
\0 \0 \0 \0 \0 001 \0 \n C a m p o 2 \0 \0
\0 \0 \0 \0 002 \0 \b C a m p o 3 \0 \0 \0
\0 \0 \0 003 \0 004 C a m p o 4 \0 \0 \0 \0
\0 \0 004 \0 001 C a m p o 5 \0 \0 \0 \0 \0
\0 001 \0 001 C a m p o 6 \0 \0 \0 \0 \0 \0
002 \0 \b \0 \0 \0 \0 \0 \0 B \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 A
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 C \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
--
EmanueleGallo - 12 May 2006
Risolto anche questo
--
EmanueleGallo - 13 May 2006
Cambiare lunghezza al file...
C'è qualcuon che i può dare una dritta per cambiare la lunghezza di un file ( diciamo per accorciarlo ) perchè Campanile ha detto di non usare ma truncate, ma la ftruncate, che però prende come parametro un file descriptor di tipo int.... In pratica non sò proprio cosa passargli visto che ho solamente il puntatore a file... ( non mi va di crearmi il nome del file, aprirlo, prendermi il descriptor, richiuderlo, riaprirlo di nuovo e troncarlo.... Qualcuno ha qualche idea ?
--
BenothmanHassen - 13 May 2006
In questa funzione devo per caso ritornare DBFInfo->CurrentRec?
--
EmanueleGallo - 13 May 2006
Re: Cambiare lunghezza al file
C'è una funzione (di cui non ricordo il nome, cmq puoi trovarla tra le specifiche dei Moduli precedenti) che converte un file pointer in un file descriptor.
--
EmanueleGallo - 13 May 2006
Fatto tutto
--
EmanueleGallo - 13 May 2006
ftruncate()
salve ragazzi, come si fa da un file* a prendere un file descriptor da utilizzare con la ftruncate() ?
--
AlessioDezi - 14 May 2006
Re: ftruncate()
Devi usare la funzione fileno().
--
EmanueleGallo - 14 May 2006
Domanda sulla fseek()
Facendo
fseek(DBFInfo.fp, 0, SEEK_END)
e successivamente chiamando
feof(DBFInfo.fp)
ho notato che viene restituito il valore false (ossia non è stato raggiunto l'EOF).
Da cosa può dipendere questo? Posizionandoci sull'ultimo byte non si dovrebbe automaticamente raggiungere l'EOF?
--
MassimilianoNatale - 15 May 2006
Record corrente
Ce qualquno che per caso sa dirmi dove è che devo scrivere il numero del record corrente!!!Cioe se Num >
NumRec mi posiziona a fine file e meto
CurentRec a
CurentRec + 1 e ritorno LPC_BAD_ARG pero il numero del record corrente dove che vado a scriverlo???!
Grazie
--
DenisDrijaj - 15 May 2006
Re: Record corrente
Il record corrente non va scritto da nessuna parte. Basta solamente posizionare il file indicator correttamente in modo che una successiva chiamata a
GetDBFInfo() possa rendere l'informazione disponibile
--
MassimilianoNatale - 15 May 2006
Decrementare EOF File
Per quanto riguarda lo spostare l' EOF in avanti penso di aver capito cioè basta scrivere e si sposta in automatico, ma quando facciamo la DELET del record come fare a decrementare l'EOF
--
AlessandroCasciaro - 17 May 2006
Decrementare EOF
Basta "tagliare" il file
--
MassimilianoNatale - 17 May 2006
Decrementare EOF
Basta "tagliare" il file
--
MassimilianoNatale - 17 May 2006
lunghezza del header
volevo solo sapere se il primo record si trova a
HeaderLen cioè se faccio fseek(DBFInfo.fp,
HeaderLen, SEEK_SET) oppure
fseek(DBFInfo.fp,
HeaderLen + 2, SEEK_SET) dove + 2 sta per i due null.
un ultima cosa tra i vari record ci sono spazi cioè tra due record ce un null che li separa oppure sonno attacati!
Grazie
--
DenisDrijaj - 18 May 2006
Re:
Devi fare fseek(DBFInfo.fp,DBFInfo.HeaderLen, SEEK_SET) .....
--
IrisKonomi - 20 May 2006
Re: (senza titolo)
Che io sapia non c'è un null che li separa.
--
IrisKonomi - 20 May 2006
Re: lunghezza dell'header
L'header termina con 2 NULL, ma questi sono già conteggiati in
HeaderLen. Per cui facendo fseek(DBFInfo.fp,DBFInfo.HeaderLen,SEEK_SET) sei sul primo byte del primo record.
--
DanieleSchirmo - 21 May 2006
Consegna
Il prof. Campanile ha scritto che si dovrebbero consegnare soltanto i file .c e .h.
Sapete se vanno zippati solo i sorgenti oppure se va comunque mantenuta la struttura della directory Modulo 3 (ed eventualmente cancellare i file .dbf visto che si diceva che non vanno consegnati)?
--
MassimilianoNatale - 23 May 2006
Re: Consegna
Io nei due moduli precedenti ho creato una cartella Moludo2 dove dentro c'erano i file .c .h e il file Readme.txt e questa cartella va zippata e va consegnata.
--
IrisKonomi - 24 May 2006
Re: Re: Consegna
Io ho sempre creato un file modulo.zip contenente solo i .c, il .h e il Readme.txt (e così ho fatto anche questa volta).
L'unica cosa su cui ho un po' di dubbio è se è da consegnare un file .zip o un file .tar.gz, visto che l'altra volta c'era stata un po' di confusione e non so cosa si era deciso.
--
DanieleSchirmo - 25 May 2006
"Date" esami
Ciao!
Vorrei sapere a cosa si riferiscono le date degli esami di Laboratorio di Programmazione che ci sono nel calendario degli appelli. Dobbiamo discutere il nostro progetto con i professori, in quella data e in quel luogo? Oppure è solo una verbalizzazione?
Scusate la domanda niubba ma non ho avuto possibilità di seguire il corso, per motivi personali (il progetto l'ho fatto, comunque).
Grazie
--
AlessandroPiva - 29 May 2006
Re: "Date" esami
Ma penso che si riferiscono alla verbalizzazione.
--
IrisKonomi - 01 Jun 2006
Diamond Crush
www.diamondcrush.net
First Playable is out
Second Impact coming soon
stay tuned...
--
AlbertoLaRocca - 06 Jun 2006
Qualche idea per la conversione di un long?
Ragazzi qualcuno ha già fatto la funzione che converte un long necessaria per il modulo 4 ? io non ho proprio idea di come fare a scindere i byte, ho provato a prendere da input un long, e tramite la memcpy ficarla in un vettore, mi aspettavo di trovare byte per byte il valore binario del long, macchè dentro ci sta un macello incomprensibile... spero che qualcuno di voi mi illumini!!!
--
GiuseppeDiFederico - 07 Jun 2006
Re: Qualche idea per la conversione di un long?
Te hai fatto architettura 1?Prova a pensare come si converte da decimale a binario...
--
AlessandroMarinelli - 07 Jun 2006
Re: Qualche idea per la conversione di un long?
Giuseppe va a scarica le cassette di insalata al ristorante ! Da mario,simone,onelio.
--
ErPeperones - 12 Jun 2006
ma questa conversione?
ragazzi, a grandi linee potete spiegare meglio come si fa ?
--
AlessioDezi - 12 Jun 2006
Re: Re: Qualche idea per la conversione di un long?
1
calciatore fallito, 1
nuotatore impedito, ed un 1
trattorista mancato ..... E che me faccio pia in giro da voi ?
Ma fatela finita !!!!
P.S
A simo se dice che davanti a Via Salaria 113 ce sia 1 trattore in doppia fila...
VALLO A SPOSTA !
Dal vostro caro am
ico Giuseppe Di Feder
ico
--
ErPeperones2_laVendemmia[corTrattore] - 13 Jun 2006
Qualche idea per la conversione di un long?
Ragazzi scherzi a parte, se sapete usare le union è veramente un attimo provate, con questa unione vengono 2 rige di codice:
union {
double s;
char c [ sizeof(double) ];
};
--
GiuseppeDiFederico - 13 Jun 2006
Risultati specifiche
Qualcuno sa dirmi che vuol dire "timestamp o numrec non in NBO o assenti del tutto" che è sto NBO?
--
ColocciDaniele - 14 Jun 2006
Re: Risultati specifiche
NETWORK BYTE ORDER!! Ma stai facendo il proj di quest'anno o quello dell'anno scorso???
--
AlessandroMarinelli - 14 Jun 2006
(senza titolo)
Ecco ora mi è tutto chiaro:)
Me so fregato 8 punti di specifiche come un fesso, mannaggia a me!!!
Di quest'anno, quello dell'anno scorso non avevo voglia di farlo:p
--
ColocciDaniele - 14 Jun 2006
Union
Salve ragazzi, ho capito bene come funzionano le union, ma in una union
{
double d;
char c[ sizeof(double)];
}
come faccio a inserire nell'unione questo benedetto void*value ???Ho provato in tutti i modi, con tutti i tipi di cast,ma il compilatore mi da sempre errore.Perche nell'esempio sotto non va bene?Il cast non dovrebbe andare bene?grazie.
union un{
double d;
char c[sizeof(double)];
}
c=(char*)value;
--
AlessioDezi - 19 Jun 2006
Re: Qualche idea per la conversione di un long?
Scusate ma a che vi serve la conversione di un long dato che per questo tipo già ci sono le relative funzioni per la conversione? Nelle specifiche è chiesta una procedura per i double e basta.
--
EmanueleGallo - 20 Jun 2006
Re: Union
Ma che hai capito? Quella union io l'ho citata come "aiuto" per fare la conversione del double che centra il void* value ?!?
--
GiuseppeDiFederico - 20 Jun 2006
Re: Re: Union
perche il valore che dobbiamo convertire sta in
FieldValue.value che è un void* o mi sbaglio???Nelle specifiche è scritto cosi!
--
AlessioDezi - 21 Jun 2006
Re: Union
Di federico arivai a vende le patate!
--
OnelioCancellieri - 21 Jun 2006
Re: Onelio
No, vado a mare a pia il sole tra na nuotatina e l'altra!!!
Grazie lo stesso onè, poteva anche esse n'idea!!
--
GiuseppeDiFederico - 03 Jul 2006
Re: Union
Scusa se rispondo solo oggi, cmq il cast è questo se può aiutarti
double *valore;
//La variabile deve essere un puntatore a double
*valore = (double *)FieldValue->value;
//Assegni il double ad una variabile
*valore = convert(*valore)
//e poi la passi alla funzione
il cui prototipo è:
double convert(double valore)
--
GiuseppeDiFederico - 03 Jul 2006
test 40108
Probabilmente avrò sbagliato qualcosa... il problema è che al momento non so cosa!! Nel test 40108 io effettivamente riscrivo gli 11 bytes del campo NOME del record corrente come da specifiche, solo che controllando il file con un editor binario mi accorgo che scrive 11 bytes "strani"... Provando a stampare direttamente il
FieldValue[0].value con printf mi sono accorto che effettivamente value punta proprio a quella stringa di bytes (mentre invece a giudicare dal file con il quale viene confrontato il nostro, dovrebbe essere "Franco DAgostino chi" e una serie di NULL per finire di riempire i 255 caratteri riservati al campo NOME
--
DanieleSchirmo - 07 Jul 2006
RE: test 40108
Scusate... ho sbagliato qualcosa per la fretta... riscrivo corretto:
Probabilmente avrò sbagliato qualcosa... il problema è che al momento non so cosa!! Nel test 40108 io effettivamente riscrivo i 255 bytes del campo NOME del record corrente come da specifiche, solo che controllando il file Prova4.dbf (che dovrebbe essere quello modificato dalla nostra funzione) con un editor binario mi accorgo che scrive dei bytes "strani" (insomma... non sono assolutamente un nome!). Provando a stampare direttamente il
FieldValue?[0].value con printf (anche dopo aver fatto un cast) mi sono accorto che effettivamente value punta proprio a quella stringa di bytes (mentre invece a giudicare dal file con il quale viene confrontato il nostro, dovrebbe essere "Franco DAgostino chi" e una serie di NULL per finire di riempire i 255 caratteri riservati al campo NOME).
In pratica da input non mi vengono passati 255 bytes uguali a quelli del primo campo del record n°50 del file
ProvaTest1.dbf (che viene confrontato con quello modificato dalla mia funzione).
Anche voi avete riscontrato lo stesso problema o è solo una cosa mia? Intanto ci lavoro su, ma aspetto notizie
--
DanieleSchirmo - 07 Jul 2006
RE: RE: test 40108
OOOps... come non detto!! Ovviamente avevo sbagliato io

on leggevo il giusto elemento di
FieldValue (cioè la mia funzione si confondeva col tipo di dato)
Sorry
--
DanieleSchirmo - 07 Jul 2006
Gestione Scrittura Value sul Record
non riesco a passare la Edit perchè faccio qualche errore sulla parte più facile,volevo sapere se anche voi gestite in questo modo i value da scrivere sul record:
( tralascio la conversione del double )
grazie
case CHARACTER:
char * ValueChar = calloc( BufferLen ,sizeof(char));
memcpy ( ValueChar , FieldValue[j].value ,BufferLen);
case DATE:
long ValueDate = (long)FieldValue[j].value;
ValueDate = htonl (ValueDate);
case LOGICAL:
char * ValueLogic = (char *)FieldValue[j].value;
if ( *ValueLogic == 0 )
*ValueLogic = htonl (FALSE);
else
*ValueLogic = htonl (TRUE);
--
StefanoGuglielmi - 11 Jul 2006
(senza titolo)
Non credo che nel logical devi fare htonl ,perche è un solo byte, come lo inverti è sempre un byte, almeno credo!
--
AlessioDezi - 11 Jul 2006
Lettura dei file .dbf
Sono bloccato da tempo sul test che confranta i file modificati con la edit, sapete dirmi come faccio a vedere il contenuto dei file .dbf nella cartella di test per capire dove e per cosa differiscono?
--
ColocciDaniele - 12 Jul 2006
Re: Lettura dei file .dbf
si leggono col comando: od -c nometest.c
il problema è che sono troppo grandi per trovare le differenze..
spero che qualcuno ha trovato una soluzione..
--
StefanoGuglielmi - 12 Jul 2006
(senza titolo)
Grazie mille:)
per trovare le differenze
diff nomefile1 nomefile2
trova e restituisce le righe differenti. Ho provato e funziona bene, il problema è che non ho ben capito come si legge ciò che restituisce il comando od l'asterisco separa ogni record?
--
ColocciDaniele - 12 Jul 2006
Re: Value
Sono bloccato sulla scrittura dei value nel record.
Non capisco perchè il compilatore mi costringe a dichiarare un puntatore ad un double (perchè per un long basta una variabile e per un double no?)
Ho provato cosi ma in tnum e in fieldvalue, stampandoli prima di scrivere nel record e dopo le assegnazioni, vi sono valori differenti
Sapete dirmi dove sbaglio?
case NUMERIC:
Tnum = (double*) (FieldValue+cont2)->value;
*Tnum = converti(*Tnum);
fwrite(Tnum, 1, FIELD_NUM_LEN, fp);
err = fflush(fp);
--
ColocciDaniele - 12 Jul 2006
No such template def TMPL:DEF{PROMPT:thread}
- Se usate dei titoli comprensibili ci capiamo tutti un po' meglio
- Ricordatevi di chiudere i tag che inserite nei post.
--
AndreaSterbini - 11 Mar 2006