Tags:
create new tag
view all tags

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? smile

#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 smile


-- 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?" smile

-- 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 smile
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. frown

-- 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. wink

-- 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 smile

-- 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

Ma CurrentRec dov'è?

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

Re: Ma CurrentRec? dov'è?

Risolto smile

-- EmanueleGallo - 12 May 2006

Test della InsertRecord()

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

Re: Test della InsertRecord?()

Risolto anche questo smile

-- 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

Funzione GoToRecord()

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

Re: Funzione GoToRecord?()

Fatto tutto smile

-- 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. smile

-- 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 amico Giuseppe Di Federico


-- 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 frown


-- DanieleSchirmo - 07 Jul 2006

RE: RE: test 40108

OOOps... come non detto!! Ovviamente avevo sbagliato io big grin 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

Edit | Attach | Watch | Print version | History: r85 < r84 < r83 < r82 < r81 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r85 - 2006-07-12 - ColocciDaniele






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback