Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 29-03-2006, 20.06.28   #16
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Questo è l'output di gdb invece:

Codice:
Program received signal SIGSEGV, Segmentation fault.
0x4008677e in fread () from /lib/tls/libc.so.6
Ma questa fread non l'ho mai usata??!?!!
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 20.11.10   #17
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
No non ci credo. Aggiungendo quelle linee mi finisce tutti i test. Però sinceramente non capisco perché gli ultimi due test mi dice che non li ho passati. Come mai?
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 20.19.10   #18
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
hai anche dimenticato una malloc:

in LPC_DeleteDBF.c, LINE 21:

tmp = (char *)malloc(sizeof(char) * (strlen(Name) + 1));

va inserita prima della

strcpy(tmp,Name);
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Vecchio 29-03-2006, 20.25.11   #19
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Grazie. Senti mi sapresti dire perché nei test mi ritorna un valore invece che un altro? Ad esempio nel test che controlla se un campo è valido mi ritorna DBF esistente, mentre io gli ho detto di tornare esplicitamente Nome campo o tipo non valido qualcosa del genere.
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 20.31.15   #20
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
Dove?

Questo è l'output sulla mia macchina:

Codice:
Test CREATE
Test:[10101] Peso:[3] - [CREATE: nome NULL]
Errore [-1] in [CreateDatabaseFile]-->[Nome DB nullo o non valido o NumFields<=0]
Ritorno della create: [-1]

Test:[10102] Peso:[1] - [CREATE: nome non valido]
Errore [-1] in [CreateDatabaseFile]-->[Nome DB nullo o non valido o NumFields<=0]
Ritorno della create: [-1]

Test:[10103] Peso:[1] - [CREATE [%d]: nome non valido (2)]
Errore [-1] in [CreateDatabaseFile]-->[Nome DB nullo o non valido o NumFields<=0]
Ritorno della create: [-1]

Test:[10104] Peso:[3] - [CREATE: NumFields nonvalido]
Errore [-1] in [CreateDatabaseFile]-->[Nome DB nullo o non valido o NumFields<=0]
Ritorno della create: [-1]

Test:[10105] Peso:[3] - [CREATE: NumFields nonvalido (2)]
Errore [-1] in [CreateDatabaseFile]-->[Nome DB nullo o non valido o NumFields<=0]
Ritorno della create: [-1]

Test:[10106] Peso:[3] - [CREATE: FieldData nonvalido]
Errore [-8] in [CreateDatabaseFile]-->[Errore allocazione memoria]
Ritorno della create: [-8]

Test:[10107] Peso:[1] - [CREATE: Nome campo non valido]
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]

Test:[10108] Peso:[3] - [CREATE: Tipo campo non valido]
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]

Test:[10109] Peso:[2] - [CREATE: Lunghezza campo non valida]
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]

Test:[10110] Peso:[2] - [CREATE: Campo gia' esistente]
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]

Test:[10111] Peso:[4] - [CREATE: DBF esistente]
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]

Test:[10112] Peso:[10] - [CREATE: Funzionalita']
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]
Test:[10113] Peso:[10] - [CREATE: Verifica correttezza]

ID:    10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113
PESO:      3     1     1     3     3     3     1     3     2     2     4    10    10
PASS:      1     1     1     1     1     1     1     1     1     1     1     0     0

Fine Test [CREATE]: Numtests:[13] Totvalue:[46] Passed:[26] Score:[56.52]

Test DELETE
Test:[10201] Peso:[2] - [DELETE: nome NULL]
Errore [-1] in [DeleteDatabaseFile]-->[Nome DB nullo o non valido]
Ritorno della delete: [-1]

Test:[10202] Peso:[1] - [DELETE: nome non valido]
Errore [-1] in [DeleteDatabaseFile]-->[Nome DB nullo o non valido]
Ritorno della delete: [-1]

Test:[10203] Peso:[1] - [DELETE: nome non valido (2)]
Errore [-1] in [DeleteDatabaseFile]-->[Nome DB nullo o non valido]
Ritorno della delete: [-1]

Test:[10204] Peso:[2] - [Test DELETE: DBF non esistente]
Errore [-4] in [DeleteDatabaseFile]-->[Il file non esiste o non può essere cancellato]
Ritorno della delete: [-4]

Test:[10205] Peso:[3] - [Test DELETE: DBF aperto
]
Errore [-10] in [DeleteDatabaseFile]-->[Il database è aperto]
Ritorno della delete: [-10]

Test:[10206] Peso:[10] - [Test DELETE: Funzionalita']
Errore [-4] in [DeleteDatabaseFile]-->[Il file non esiste o non può essere cancellato]
Ritorno della Delete: [-4]

ID:    10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10201 10202 10203 10204 10205 10206
PESO:      3     1     1     3     3     3     1     3     2     2     4    10    10     2     1     1     2     3    10
PASS:      1     1     1     1     1     1     1     1     1     1     1     0     0     1     1     1     1     1     0

Fine Test [DELETE]: Numtests:[19] Totvalue:[65] Passed:[35] Score:[53.85]
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Vecchio 29-03-2006, 20.34.33   #21
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Codice:
Test:[10111] Peso:[4] - [CREATE: DBF esistente]
Errore [-2] in [CreateDatabaseFile]-->[Valore di uno dei campi non valido: nome, tipo o lunghezza]
Ritorno della create: [-2]
Qui deve tornare DBF esistente (invece torna Valore di uno dei campi non valido: nome, tipo o lunghezza). Io l'ho modificato nel senso che ho aggiunto il controllo per vedere se esiste il file. E infatti adesso funziona, solo che da quel test in poi mi ritorna sempre DBF esistente.
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 20.37.27   #22
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Poi scusa un'altra cosa. Come faccio a scrivere tutta quella struttura che ho riempito tramite la fwrite? Come ho scritto io mi sa che non va bene.
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 21.17.27   #23
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
no, non puoi scrivere una struttura su file... devi serializzarla in qualche modo in una stringa. Qual è il formato del file?
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Vecchio 29-03-2006, 22.10.20   #24
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Nelle specifiche c'è scritto di serializzare tutti i campi in un buffer e poi scriverli tutti d'un colpo sul file. Il formato del file non te lo so dire ma come puoi notare viene aperto in binario. Come posso fare allora?
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 22.14.10   #25
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
qualcosa tipo

sprintf(buf, "%s|%d|%s|%s", h->stringval, h->intval, h->newstring, h->otherstring);

però bisognerebbe sapere quale formato usare...
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Vecchio 29-03-2006, 22.19.22   #26
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
BTW:

file LPC_CreateDBF.c

perché assegni due volte i valori ai campi della struttura (linee 49 e seguenti)
Codice:
h->NumCampi = (uint16_t) htons(h->NumCampi); //inutile?

h->NumCampi = NumFields;
....
poi credo che i controlli all'interno dell'if() di riga 76 debbano essere messi in AND, non in OR:

Codice:
strcpy(h->campo[i].name,FieldData[i].Name);   

if (   (FieldData[i].FieldType != CHARACTER) 
    && (FieldData[i].FieldType != NUMERIC) 
    && (FieldData[i].FieldType != DATE) 
    && (FieldData[i].FieldType != LOGICAL)
) {
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Vecchio 29-03-2006, 22.47.29   #27
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Codice:
sprintf(buf, "%s|%d|%s|%s", h->stringval, h->intval, h->newstring, h->otherstring);
Non va bene perché sto scrivendo su file binari e quindi devo usare la fwrite().

Codice:
h->NumCampi = (uint16_t) htons(h->NumCampi); //inutile?
h->NumCampi = NumFields;
Quello serve solamente per convertire il valore del campo in Network Byte Order (per la portabilità del codice). Altrimenti andrebbe solo su macchine Little Endian.

Codice:
if (   (FieldData[i].FieldType != CHARACTER) 
    && (FieldData[i].FieldType != NUMERIC) 
    && (FieldData[i].FieldType != DATE) 
    && (FieldData[i].FieldType != LOGICAL)
) {
Mi sa che hai ragione tu
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 22.52.27   #28
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
Quota:
Originariamente inviato da Manugal
Codice:
sprintf(buf, "%s|%d|%s|%s", h->stringval, h->intval, h->newstring, h->otherstring);
Non va bene perché sto scrivendo su file binari e quindi devo usare la fwrite().
and? Prima serializzi la struttura in una stringa "buf", poi fai il dump del buffer su file con la fwrite()...

Quota:
Originariamente inviato da Manugal
Codice:
h->NumCampi = (uint16_t) htons(h->NumCampi); //inutile?
h->NumCampi = NumFields;
Quello serve solamente per convertire il valore del campo in Network Byte Order (per la portabilità del codice). Altrimenti andrebbe solo su macchine Little Endian.
d'accordo, ma se alla riga successiva lo sovrascrivi con un altro valore (NumFields), a che serve?
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Vecchio 29-03-2006, 22.56.57   #29
Manugal
Hero Member
 
L'avatar di Manugal
 
Registrato: 15-10-2000
Messaggi: 588
Manugal promette bene
Codice:
and? Prima serializzi la struttura in una stringa "buf", poi fai il dump del buffer su file con la fwrite()...
Ok che ti serve sapere il formato di ogni campo della struct? La struct è definita nel file LPC_M1_Include.h che sta nella cartella /Modulo1/Include

Codice:
d'accordo, ma se alla riga successiva lo sovrascrivi con un altro valore (NumFields), a che serve?
Quindi semmai dovrei fare l'operazione inversa, no?
Manugal non è collegato   Rispondi citando
Vecchio 29-03-2006, 23.05.53   #30
quipo.it
WT Assistant
 
L'avatar di quipo.it
 
Registrato: 19-12-2000
Loc.: Cambiano (Torino)
Messaggi: 591
quipo.it promette bene
Quota:
Originariamente inviato da Manugal
Codice:
and? Prima serializzi la struttura in una stringa "buf", poi fai il dump del buffer su file con la fwrite()...
Ok che ti serve sapere il formato di ogni campo della struct? La struct è definita nel file LPC_M1_Include.h che sta nella cartella /Modulo1/Include
beh, ti ho indicato come puoi procedere, ora divertiti un pochino tu...


Quota:
Originariamente inviato da Manugal
Codice:
d'accordo, ma se alla riga successiva lo sovrascrivi con un altro valore (NumFields), a che serve?
Quindi semmai dovrei fare l'operazione inversa, no?
già
___________________________________

There are 10 kinds of people in this world,
those who can read binary and those who can't.

Care to say "thank you"?
quipo.it non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Parole in musica gemma Chiacchiere in libertà 415 03-06-2007 05.24.48
GENERAL PROTECTION FAULT Slith Hardware e Overclock 8 24-06-2005 20.51.57
Quiz: Versi di canzoni tisifone Chiacchiere in libertà 55 02-07-2004 19.13.03
fault in ms-dos extender marcofitaly Windows 9x/Me/NT4/2000 1 27-05-2004 23.45.27

Orario GMT +2. Ora sono le: 08.04.51.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.