Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-09-2002, 15:34   #1
R1((ky
Senior Member
 
L'Avatar di R1((ky
 
Iscritto dal: Apr 2000
Città: Piacenza d'Adige (PD)
Messaggi: 651
un po' di problemini col C....

Dunque, per l'Uni devo fare un progetto in C che consiste nella gestione di un elenco di indirizzi e numeri telefonici.

Il programma funziona parzialmente, in pratica solo nella gestione del file con le informazioni delle persone.....usando gli stessi criteri nella gestione del file con i numeri di telefono, il programma non trova i record con i dati.


Altro problema: nell'inserimento dei numeri di telefono nel file, il programma non memorizza lo 0 iniziale del numero, perchè essendo visto come int, ovviamente lo 0 davanti non ha nessun senso...

allego il codice....



Per favore, aiutatemi...perchè per una serie di problemi che ho avuto.....se non porto questo programma entro il 30 settembre dovrò partire per il militare.....


grazie
R1((ky è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 19:24   #2
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Poichè un "leading zero" non potrai mai averlo in un numero, ci sono due possibilità:

1) Metti regolarmente uno zero davanti al numero quando lo visualizzi.

2) Memorizza il numero di telefono come una stringa (un array di char), visto che in senso stretto il suo valore numerico non ti è di nessuna utilità.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2002, 23:36   #3
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
ora non guardo il codice, cmq...
memorizzare un numero di telefono come intero a me sembra inutile e controproducente.
il numero di telefono è una stringa, poco importa se composta di soli numeri.
per memorizzare un numero di telefono, se corto, penso ti basti un intero da 32 bit che di sicuro ti fa risparmiare spazio rispetto ai caratteri che avresti bisogno...
ma ne vale la pena?
ti arriva un nr grande, vai in overflow...

secondo me, se non altro per una programmazione "ordinata", i dati numerici sui quali non hai bisogno di effettuare nessun tipo di operazione matematica è meglio salvarli come stringhe.

magari domani se ho tempo ti do una mano per il resto, cmq il mio è solo un consiglio
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 13:47   #4
R1((ky
Senior Member
 
L'Avatar di R1((ky
 
Iscritto dal: Apr 2000
Città: Piacenza d'Adige (PD)
Messaggi: 651
Quote:
[b]magari domani se ho tempo ti do una mano per il resto, cmq il mio è solo un consiglio

grazie!
R1((ky è offline   Rispondi citando il messaggio o parte di esso
Old 18-09-2002, 20:02   #5
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
ho dato un'occhiata al codice, direi che di problemi ce ne sono e ben più gravi di quello 0 mancante.

la modifica è sbagliata.
hai memorizzato su ogni riga codice, cognome nome e indirizzo... ok.
ma se vuoi editare mettiamo la prima entry e gli metti un indirizzo più lungo sai che succede?
che invadi lo spazio della seconda entry, cancellandone una parte.
dovresti riscrivere il file da capo, ovvero copiare le entry precedenti a quella modificata, scrivere la stessa, ricopiare subito dopo le altre entry.
in alternativa, per una modifica più rapida, potresti stabilire dei limiti per nome cognome ecc. e salvare aggiungendo degli spazi vuoti in fondo, in modo che ogni tua entry occupi x caratteri e che la modifica sia immediata. questo però è uno spreco di spazio bello e buono, tienila come ultima alternativa.

non funziona nemmeno la stampa a video di tutte le entry. le stampa, ma poi dovrebbe ridare il menù, invece continua a scrivere 0 ogni volta che premi invio.

ancora la modifica, io ho inserito il codice 1, indirizzo nome tutte le storie... chiedo di modificare, mi domanda il codice, metto 1 e dice che non trova i dati. mah...
questa l'ho capita poi, tu usi un array chiamato P, ma se io apro il programma e il file rubrica esiste già devi caricarlo nel vettore, altrimenti che te ne fai dei file se poi usi una struttura volatile?
anzi, siamo più precisi, che te ne fai di un array quando hai il file?
togli quel P, leggi di volta in volta dal file...
non velocizzi le operazioni con l'array, sprechi solo memoria.

cmq io ti ho detto cosa non va secondo me, di lavoro da fare ne hai ma una mano te la diamo volentieri, cmq per prima cosa togli l'array P (anche il T...) e pensa a cosa vuoi fare per la modifica.

ciao
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2002, 11:33   #6
Stef3k
Member
 
Iscritto dal: Feb 2001
Messaggi: 14
Recoil grazie,se ci aiuti...

Ciao Recoil.Sono un amico di Ri((ky,in realta' il programma l'ho fatto io,lo dobbiamo presentare insieme....
Dunque,ho capito piu' o meno....
1)lasciamo stare il discorso spreco di memoria,nn ci interessa l'algoritmo migliore,basta che il prog funzioni!
2)e' importante invece l'ultima cosa che hai detto,l'array P e il resto.
Vedi,io ho organizzato ogni funzione come:
prima il caricamento di tutti i dati in Array,
poi la modifica dei suoi campi,
poi la sovrascrittura sul file del nuovo array.
Dove e' che e' sbagliato?Purtr come dici tu nn trova infatti i dati.
A questo punto,come faccio a leggere di volta in volta il file?
E poi,come mai per il primo file la funzione modifica funziona,e per il secondo no?E' strano....nn dovrebbe funzionare allora per tutti e due i file.....
Stef3k è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2002, 18:09   #7
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
sto dando un'occhiata...
ho capito perché la modifica non va, fate i confronti con l'array P ma quando inserite un elemento lo mettete in un buffer temporaneo, non nell'array!

quindi se volete insistere con l'idea di mettere tutto in un grande array in memoria (non credo che un docente sarebbe molto soddisfatto ma pazienza...) ricordatevi di aggiornarlo ad ogni operazione, inserimento compreso.

cmq, ecco qualche consiglio.
- il codice fatelo diventare una stringa, vale per esso lo stesso discorso fatto per i numeri di telefono.
- ho visto che quando cancellate una persona fate un ciclo che copia P[i + 1] in P[i].
ma che vuol dire?
funziona, ma è un'ulteriore spreco di tempo...
piuttosto mettete un campo intero che valga 0 o 1 e che dica se il tale elemento dell'array è o meno valido, oppure usate il campo codice come già fate
- tenete buona l'idea di leggere il file all'inizio e aggiornare l'array e fare il contrario quando uscite dal programma, probabilmente è la soluzione più semplice anche se non mi piace molto.
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2002, 18:06   #8
Stef3k
Member
 
Iscritto dal: Feb 2001
Messaggi: 14
No aspetta.
-L'inserimento e' una soluzione trovata per immettere una nuova persona e un nuovo telefono.(funziona,ok)
-Le altre funzioni prima caricano in memoria i dati inseriti del file,immettendoli in un array.Nn e' sbagliato penso,perche' per le funzioni che riguardano P[](primo file) funzionano.(a parte la cancellaz)
-Il problema e' che stranamente per T[](secondo file)la Modifica e le altre funzioni nn trovano i campi,anche se le funzioni sono prat =a quelle di P[]se noti..
->a questo punto si tratta di tradurre in formule cio' che hai detto:
1)il codice come stringa nn e' un problema,lo faccio.
2)la Cancellazione nn ha effettoil ciclo copia i dati su un altro vettore per poi invalidare l'ultimo dato).Come interverresti sulla mia funzione?
3)la Modifica:v su.Riesci a intervenire dirett su quello che ho scritto io nel prog?
4)leggere il file all'inizio e aggiornare l'array nn va bene,perche' per es devo eseguire piu' funzioni prima di chiudere il prog,e dovrei chiudere e riaprire se faccio come dici tu...
Ti ringrazio del tempo che perdi,se ce la fai,abbiamo finito e ci salvi!
Stef3k è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2002, 17:37   #9
Stef3k
Member
 
Iscritto dal: Feb 2001
Messaggi: 14
Ciao REcoil,sei riuscito a fare qc?Grazie ciao!!!!!!!!
Stef3k è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2002, 23:38   #10
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
se posso faccio qualcosina domani, dovrei avere tanto tempo libero in teoria :-)
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2002, 13:01   #11
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
allora ragazzi, ho riguardato brevemente il codice
ci sono un po' di cose che non sono ancora chiare...

1) il fatto di scrivere su file a cosa serve?
quando riavviate il programma c'è bisogno di tenere conto dei file oppure è come se la rubrica fosse vuota?

2) quando inserite una persona lo fate scrivendo su file, senza aggiornare l'array (parlo di inserimento_persona).
ok sarebbe giusto, ma se non aggiornate P è un po' difficile che poi funzionino cancellazione e modifica no?

nella cancellazione ho capito che fate, prima sovrascrivete le posizioni dell'array a partire da quella cancellata spostandole tutte indietro di 1, poi riscrivete il file tenendo conto del contenuto di P... bene allora fate la stessa cosa nella procedura modifica, alla fine riscrivete tutto il file e non solo i campi modificati.

il problema nel vostro progetto mi sembra proprio questo: la mancanza di coerenza delle scelte progettuali. se avete un file sarebbe meglio usarlo sempre, se avete un array idem.
i problemi credo proprio che si risolveranno così.
riguardo alla parte sul telefono vale lo stesso principio, ho dato un'occhiata rapida e ho notato che inserendo i numeri non aggiornate l'array e nella cancellazione non aggiornate il file, fate esattamente le stesse operazioni sia con il telefono che con il resto dei dati insomma.

ciao
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2002, 21:23   #12
cavay
Member
 
Iscritto dal: Sep 2001
Messaggi: 181
Ragazzi vi voglio aiutare ma.......ancora devo capire una cosa:

1) a cosa servono questi array???
se state facendo una sorta di rubrica, quindi dove mem dati "persistenti" in un file, perchè caricare una mattone in memoria per gestire il tutto??

...se fa parte dell'eserc utilizzare gli array....allora è un discorso; altrimenti....nn utilizzateli e risolvete tutti questi probl inutili sulla gestione degli array!

consiglio:
1) le strutture e le funz inseritele in un file .h per magg legg
2) guardatevi anche le primitiva read e write


***
Buon lavoro
cavay è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2002, 21:44   #13
Stef3k
Member
 
Iscritto dal: Feb 2001
Messaggi: 14
Dunque:
--nell'inserimento_ scrivo nel file in posizioni una dopo l'altra le persone e i telefoni,tanto le posizioni nn mi servono (nel file Notepad i campi ci sono tutti.....)
--in tutte le altre ho bisogno degli array perche' per ricercare,modificare,cancellare, devo caricare i dati del file in un array,senno' come faccio a trovare un determinato campo del file???
--fatto questo,le operazioni vengono fatte sempre sull'array,e poi scrivo l'array nuovo nel file,in modo che venga modificato.
Chiaro?
Dove sta l'errore?io aggiorno il file dopo le operazioni sull'array se vedete....cavolo,ma modifica e cancellazione nn vanno........
Stef3k è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2002, 03:15   #14
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da recoil
[b]se posso faccio qualcosina domani, dovrei avere tanto tempo libero in teoria :-)
Hey Recoil, hai cambiato avatar? Non riesco a capire cos'è, vedo solo un grosso sigarone nero nel centro
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2002, 12:13   #15
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
ok piccolo OT :-)
non è un sigaro, ma un proiettile.

http://www.recoil.co.uk/media/design/liquid3.htm

qui vedi la foto più in grande e vedrai che ti farai un'idea. a me le foto di quel sito piacciono un casino, penso che la terrò perché tanto la faccia di prima era troppo piccola, invece questo avatar ha dei colori che mi esaltano di più
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2002, 21:06   #16
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da recoil
[b]ok piccolo OT :-)
non è un sigaro, ma un proiettile.

http://www.recoil.co.uk/media/design/liquid3.htm

qui vedi la foto più in grande e vedrai che ti farai un'idea. a me le foto di quel sito piacciono un casino, penso che la terrò perché tanto la faccia di prima era troppo piccola, invece questo avatar ha dei colori che mi esaltano di più
Ok grazie per la spiegazione
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2002, 10:49   #17
Stef3k
Member
 
Iscritto dal: Feb 2001
Messaggi: 14
nessuno ha qc idea di risoluzione?
Stef3k è offline   Rispondi citando il messaggio o parte di esso
Old 28-09-2002, 20:00   #18
cavay
Member
 
Iscritto dal: Sep 2001
Messaggi: 181
Quote:
Originariamente inviato da Stef3k
[b]Dunque:
--nell'inserimento_ scrivo nel file in posizioni una dopo l'altra le persone e i telefoni,tanto le posizioni nn mi servono (nel file Notepad i campi ci sono tutti.....)
--in tutte le altre ho bisogno degli array perche' per ricercare,modificare,cancellare, devo caricare i dati del file in un array,senno' come faccio a trovare un determinato campo del file???
Se invece di utilizzare un array utilizzi solo una var di tipo struttura potresti fare una cosa del genere:

while(test)
{
//leggi una riga del file e l'assegni alla variabile
if(CampoStruttura==ValoreDesiderato)
test=false;
}
a questo punto vella variab struttura hai quello che cercavi!

Quote:
--fatto questo,le operazioni vengono fatte sempre sull'array,e poi scrivo l'array nuovo nel file,in modo che venga modificato.
Chiaro?
Dove sta l'errore?io aggiorno il file dopo le operazioni sull'array se vedete....cavolo,ma modifica e cancellazione nn vanno........
Il ragg file e...cmq dovrebbe funzionare... nn ho visto il codice bene ma...ti consiglio di scegliere questa strada!

una volta trovato "il record" ke ti interessa , conosci anche la posizione della testina....quindi utilizzando read write seek etc etc...fai tutto quello che vuoi!!

(un altra soluzione sarebbe quella di uilizzare un file d'appog...tipo coome utilizzi ti un array........perchè nn l'array? immagina che il file diventi di dimensioni enormi....l'applicazione nn potresti + farla girare.....insomma dipenderebbe troppo dalla disp di memoria che si ha su di una macchina)

Cmq se...preferisci fare in questo modo....ok! appena ho un pochettino di tempo guardo il codice e...ti faccio sapere!
cavay è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2002, 00:15   #19
cavay
Member
 
Iscritto dal: Sep 2001
Messaggi: 181
cmq.....ho dato uno sguardo veloce al codice....nn l'ho provato...pero' se mi dici che tutto funz a parte...etc etc allora credo di aver capito il problema:

ti confronti 2 stringhe (ovviamente parlo di stringhe c e nn quelle c++.....insomma di array di caratteri)come se confrontassi due variabili semplici.......mi spiego:

int a,b;

allora puoi fare sia un assegnazione del tipo a=b; che un confronto tipo if(a==b)......se invece stai parlado di char* devi utilizzare
strcpy //per assegnazione
strcmp //per confronto......restituisce 0 se le due stringhe sono uguali!

***
anche se nn ho compilato...credo che sia questo proprio il problema, cmq.....fammi sapere se funz o no, in caso negativo significa che compilo un po' l'adazza e...vedo meglio

N.B.
continuo a scons sta soluzione....se poi vuoi proprio....aggiustalo un po', rendilo un attimino + legg e....se proprio vuoi usare le stringhe .... almeno allocale dinamicamente!!
cavay è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2002, 13:20   #20
Stef3k
Member
 
Iscritto dal: Feb 2001
Messaggi: 14
Aspetta aspetta,siamo all'univ primo anno,le allocazioni dinamiche nn le abbiamo ancora fatte,neanche read write seek....rimango con gli array....
Il discorso delle stringhe ahhhhhhhhhhhhhh.......
penso tu abbia proprio colto la sottigliezza....
allora: 1)sulla ricerca telefoni (che contiene la procedura che valuta insieme al 2 file anche il primo) ora va,cioe' i campi del secondo file ora li trova,perche' appunto avevo scritto male il confronto stringhe...
->la stranezza del fatto che nn trovava i campi e' risolta
->questo vuol dire che ho la conferma che la procedura che lega 1file-2file va.

2)adesso rimane soltanto la Modifica e Cancellazione (per tutti e due)
--la Cancellazione nn ha effetto
--la Modifica:io ricerco/trovo/copio nell'array alla posizione i-esima i campi che scrivo a video/scrivo nel FILE i campi nuovi ALLA POSIZIONE I-ESIMA, ma nn fa altro che aggiungermi ALLA FINE del file la nuova struttura,senza modificare la precedente. Perche'??

Se nn e' troppo disturbo,ti consiglierei di o compilare e vedere le 2 funz,o leggere attentamente solo quelle 2 li (basta che lo fai per il primo file,tanto poi modifico io di conseguenza per l'altro)
Grazie ancora
Stef3k è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Horses: Santa Ragione afferma di essere ...
Nuova causa contro Tesla e maniglie elet...
MindsEye, il CEO accusa: 'Speso un milio...
TV LG NanoCell da 65 pollici a 499€: tan...
ho. Mobile, nuova offerta low-cost: 100 ...
Arrow Lake Refresh: cancellato il Core U...
AI.com venduto per 70 milioni di dollari...
RNLT Milano si veste di rosso per Cliora...
Amazon Haul rilancia: compri 2 articoli ...
Nuovi fondi pubblici per la banda ultra ...
Tutte le offerte Amazon di oggi: 5 novit...
Cyber-spionaggio globale: 37 governi nel...
Stellantis e Mercedes, è ufficial...
NVIDIA integra l'AI in tutto il ciclo di...
About the Song: la novità di Spotify per...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v