Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-03-2011, 10:31   #1
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
[c++] fread, come si usa?

Sono passato dal turbo pascal al c++
ho creato questa struttura

int main ()
{
struct lot1 {
int num[5][10];
int ind, anno;
char mese[15];
} lot;




FILE * pFile;
pFile = fopen ("d:\pascal\lo96","rb");


return 0 ;
}
Non capisco se il file è binario o no?
come faccia a leggere le struttere memorizzatate nel file e po stamparle?
ho visto fread ma non so come funziona, un aiuto?
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2011, 13:35   #2
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Fread è dichiarata in questo modo

Codice:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

Il primo parametro è la struttura in cui memorizzare il record.
Il secondo indica la quantità di byte da leggere.
Il terzo indica il numero di letture da effettuare.
Il quarto è una struttura FILE che punta al file binario da leggere.

Si presuppone che se si vuole leggere da un file binario, si sappia la struttura con cui sono memorizzati i record, altrimenti credo che una corretta lettura non sia possibile.

Un esempio pratico.
In questo codice il programma include le funzioni per creare/aprire un file binario, scrivere e leggere.
Codice:
struct STUDENTE
{
   char nome[20];
   char cognome[20];
   int    anni;
};


int main () 
{
  FILE * pFile;
  STUDENTE stud; 
  if( (pFile = fopen ( "myfile.bin" , "rb" ) == NULL)
     cout<<"Impossibile aprire il file"<<endl;
 else
 {
    while( fread(&stud, sizeof(stud), 1,pFile) > 0)
    {
        cout<<"Nome: "<<stud.nome<<endl;
        cout<<"Cognome: "<<stud.cognome<<endl;
        cout<<"Anni: "<<stud.anni<<endl;
    }
    
    fclose (pFile);
 }
  system("pause");
  return 0;
}
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2011, 22:48   #3
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Grazie sei stato esaudiente, sapresti spiegarmi anche il comando fscanf?
in pascal ho un file di record memorizzati, dici è possibile leggerli in c++?
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 02:04   #4
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Mi spiace, ma non so come funzioni scanf().
Dai un'occhiata a questa pagina, magari ti è utilie: http://www.cplusplus.com/reference/c...cstdio/fscanf/

Per i file di pascal credo sia possibile leggerli, a patto però di conoscere la struttura del record memorizzato.
Il motivo è che la lettura funziona in questo modo:

Mettiamo che hai un struttura di questo tipo
Codice:
struct dipendente
{
  char nome[20];
  int anni;
  char settore;
}

La variabile char nome ovviamente memorizza il nome del dipendente e ha dimensione 20 byte (un char ha dimensione 1 byte, questo è un array di 20 char, quindi 1 byte x 20)
La variabile anni memorizza l'età del dipendente ed essendo un intero ha dimensione 4 byte (se ricordo bene).
Infine la variabile settore ha dimensione 1 byte.
La struttura ha quindi dimensione 25 byte.
Quando usi la funzione fread(), ad ogni lettura il programma legge blocchi di 25 byte, assegna i primi 20 alla variabile nome, i seguenti 4 all'intero anni e l'ultimo byte alla variabile settore.
Va da se che, se non hai la struttura precisa del record memorizzato, la lettura è praticamente impossibile.
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 09:07   #5
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Il programma in pascal è stato implementato da me ed ho la struttrura del file record memorizzto, il file memorizzato non ha l'estensione bin la cambo?, ora provero.
Un'ultima domanda se riesco a leggere il file di record del pascal, quale è il comanda che mi fa andare alla fine del file per poter continuare la registrazione.
Grazie
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.

Ultima modifica di fabbius69 : 08-03-2011 alle 09:10.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 12:12   #6
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
L'estensione non è importante, il file può anche non averla.

Per scrivere in fondo al file ti consiglio di far in questo modo:

Apri il file in questo modo
Codice:
FILE pFile;
pFIle=fopen("d:\pascal\lo96", "r+b");
Ho cambiato il secondo parametro della funzione fopen. 'r+' significa che il file viene aperto con permessi di lettura e scrittura, il puntatote è posizionato all'inizio e se il file non esiste viene restituito NULL.

In questo modo, fai la lettura del file, e quando hai terminato, sei pronto a scrivere.
Oppure se vuoi subito scrivere in fondo e saltare la lettura fai così

Codice:
FILE pFile;
if( (pFIle=fopen("d:\pascal\lo96", "r+b")!=NULL)
  fseek(pFIle,0,SEEK_SET);
fseek permette di spostarsi all'interno del file. In questo caso ti posiziona alla fine del file.
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 17:42   #7
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
La dichiarazione della struttura va dentro o fuori del main?
Se nella struttura memorizzata con il pascal la matrice è [1..5,1..10] of integer;
quando la leggo in c++ la matrice va da [0..4,0..9] quindi l'indice [0,0] su c++ equivalerà al [1,1] del pascal?

su questa linea: if( (pFile = fopen ( "d:\pascal\lot69", "rb" ) == NULL) mi da come errore:
Cannot convert 'int' to 'FILE *' in function main()
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.

Ultima modifica di fabbius69 : 08-03-2011 alle 17:58.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 18:16   #8
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Quote:
Originariamente inviato da fabbius69 Guarda i messaggi
La dichiarazione della struttura va dentro o fuori del main?
Se nella struttura memorizzata con il pascal la matrice è [1..5,1..10] of integer;
quando la leggo in c++ la matrice va da [0..4,0..9] quindi l'indice [0,0] su c++ equivalerà al [1,1] del pascal?

su questa linea: if( (pFile = fopen ( "d:\pascal\lot69", "rb" ) == NULL) mi da come errore:
Cannot convert 'int' to 'FILE *' in function main()
Hmmm non sono sicuro di aver capito bene, ma per la questione degli indici penso di si.

Per l'errore invece

Codice:
if( (pFile = fopen ( "d:\pascal\lot69", "rb" )) == NULL)
Mancava una parentesi, colpa mia.
Se ti da problemi anche così, usa questo codice
Codice:
FILE *pFIle;
pFile = fopen ( "d:\pascal\lot69", "rb" );
if( pFile == NULL)
   cout<<"Impossibile aprire il file"
else
 {
   // codice
 }
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 18:27   #9
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Ora mi da solo un errore dicendomi:
possible use of 'pFile' before definition in function main


Cosa significa?
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 20:34   #10
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Posta il tuo codice.
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 23:05   #11
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da fabbius69 Guarda i messaggi
Ora mi da solo un errore dicendomi:
possible use of 'pFile' before definition in function main


Cosa significa?
Non è che hai scritto il tuo codice fuori dal main o una qualunque altra funzione?

Comunque per rispetto al linguaggio del titolo del thread io userei ifstream al posto della libreria C
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2011, 23:56   #12
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
#include <iostream.h>
#include <stdio.h>
struct lot1 {
int num[4][9];
int ind, anno;
char mese[15];
};

int main ()
{



FILE *pFile;
lot1 lot;
int n ;


if( (pFile = fopen ( "d:\pascal\lot96.bin" , "rb" )) == NULL)
cout<<"Impossibile aprire il file"<<endl;
else
{
while( fread(&lot, sizeof(lot), 1,pFile) > 0)
{
cout<<"Anno: "<<lot.anno<<endl;
cout<<"Indice: "<<lot.ind<<endl;
cout<<"Mese: "<<lot.mese<<endl;
}

fclose (pFile);
}

for (n=1 ; n <= 10 ; n++)
cout << n << endl;
return 0 ;
}


Ora non mi da più errori ma dice impossibile aprire il file.
Cosa puo significare?

questa è la struttura in pascal
type
lo=array[1..5,1..10]of integer;
nom=string[25];
lot=record
num:lo;
ind:integer;
anno:integer;
mese:string[15];
end;

in pascal la variabile integer occupa due byte, invece char un byte, ho provato in c++ ad usare la variabile short int che occupa 2 byte.
Sempre lo stesso errore.
Cosa puo essere?
potrebbe essere l'array che in pascal parte da 1 invece in c++ da 0?

Usando sizeof sia in pascal che in c++
in pascal mi da 120 in c++ mi da 91, non riesco a capire la differenza.
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.

Ultima modifica di fabbius69 : 09-03-2011 alle 00:47.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 19:18   #13
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Mi sa che nell'indirizzo bisogna mettere il doppio slash ( \ ).
Questo è l'if corretto
Codice:
if( (pFile = fopen ( "d:\\pascal\\lot96.bin" , "rb" )) == NULL)
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 22:04   #14
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Quote:
Originariamente inviato da s1m0_93 Guarda i messaggi
Mi sa che nell'indirizzo bisogna mettere il doppio slash ( \ ).
Questo è l'if corretto
Codice:
if( (pFile = fopen ( "d:\\pascal\\lot96.bin" , "rb" )) == NULL)
Giusto il doppio slash.
Il problema che mi stampa tutti numeri strani, la grandezza dei delle due strutture sono differenze, ho problemi con la string[15] che non esiste in c++.
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.

Ultima modifica di fabbius69 : 09-03-2011 alle 22:10.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2011, 17:11   #15
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Puoi usare un vettore di char.
Si dichiara così
Codice:
char text[10];
In questo modo si crea un array composto 10 caratteri.
Ricorda che in c++ ci deve essere almeno un carattere terminatore, ovvero il carattere '\0' (è considerato un unico carattere) che corrisponde al valore 0 in ascii
Quindi se te hai memorizzato stringhe di 15 caratteri col pascal, nella struttura dichiara l'array con 16 variabili char.

Ultima modifica di s1m0_93 : 10-03-2011 alle 17:16.
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2011, 20:38   #16
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Quote:
Originariamente inviato da s1m0_93 Guarda i messaggi
Puoi usare un vettore di char.
Si dichiara così
Codice:
char text[10];
In questo modo si crea un array composto 10 caratteri.
Ricorda che in c++ ci deve essere almeno un carattere terminatore, ovvero il carattere '\0' (è considerato un unico carattere) che corrisponde al valore 0 in ascii
Quindi se te hai memorizzato stringhe di 15 caratteri col pascal, nella struttura dichiara l'array con 16 variabili char.
Provo questa sera quando torno da lavoro, un'altra domanda in delphi io carico queste strutture su un array[1..1000] of lot1; ho provato a scriverlo in c++ma è come se l'array di strutture è troppo grande, massimo posso scrivere [1..500] ora stu usando il turbo c++ 4.5, con il borland 6 c++ l'array più grande si puo creare? mi servono almeno 1000 strutture memorizzate in array per fare dei calcoli, come li devo dichiarare con malloc?
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2011, 22:25   #17
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da fabbius69 Guarda i messaggi
Provo questa sera quando torno da lavoro, un'altra domanda in delphi io carico queste strutture su un array[1..1000] of lot1; ho provato a scriverlo in c++ma è come se l'array di strutture è troppo grande, massimo posso scrivere [1..500] ora stu usando il turbo c++ 4.5, con il borland 6 c++ l'array più grande si puo creare? mi servono almeno 1000 strutture memorizzate in array per fare dei calcoli, come li devo dichiarare con malloc?
Già che parliamo di C++ usa vector al posto degli array del C, oppure, se hai a disposizione un compilatore recente, la classe array.

Infine mai usare malloc in C++
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2011, 22:34   #18
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Ora mi stampa le strutture ma per i mesi rimangono sempre le ultime lettere del mese prima
ad esempio febbraio quando passa a marzo scrive marzoio, rimangono io di Febbraio.
Scusa per array scritto in pascal, stavo scrivendo a lavoro e no mi ricordavo come si scriveva in c++.
Dicevo volevo caricare le strutture almeno mille su un vettore lot1 numv[1000];
ho scoperto che è troppo grande mi da errore: array size too large.
Ora sto usando turbo c++ 4.5
Come posso risolvere questo problema provando con un'altro compilatore più recente oppure??

Mi spieghi le classi di array???
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2011, 22:56   #19
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
[quote=fabbius69;34658116]Ora mi stampa le strutture ma per i mesi rimangono sempre le ultime lettere del mese prima
ad esempio febbraio quando passa a marzo scrive marzoio, rimangono io di Febbraio.
[quote]

Perchè tra una lettura e l'altra non resetti il contenuto degli array di lot1.

Quote:
Scusa per array scritto in pascal, stavo scrivendo a lavoro e no mi ricordavo come si scriveva in c++.
Dicevo volevo caricare le strutture almeno mille su un vettore lot1 numv[1000];
ho scoperto che è troppo grande mi da errore: array size too large.
Ora sto usando turbo c++ 4.5
Come posso risolvere questo problema provando con un'altro compilatore più recente oppure??
Turbo C++ 4.5 dovrebbe essere un compilatore dell'ante-guerra risale a prima del 1995. Io proverei con Visual Studio 2010 Express.

Quote:
Mi spieghi le classi di array???
Usa vector che è una classe template per contenere sequenze di elementi di dimensione variabile, con la caratteristica di essere (l'unica classe STL) compatibile con gli array del C.

Codice:
std::vector<lot1> v;
v.push_back(LeggiLot());
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2011, 16:52   #20
fabbius69
Senior Member
 
Iscritto dal: Feb 2003
Città: Verona
Messaggi: 1890
Programmando in console è meglio il dev c++ oppure il visual c++?
__________________
DESKTOP: Intel i9-9900KF + dissipatore ARCTIC Freezer 34 eSports DUO su Asus Prime Z390-P + Kingston FURY Beast 32GB (2x16GB) 3200MHz DDR4 CL16 +Asrock Challenger Radeon RX 6600 XT + ENERMAX REVOLUTION D.F. 2 Alimentatore 850W + Silicon Power SSD PCIe M.2 NVMe 1TB+ Seagate tgBarraCuda, 4 TB, Hard Disk Interno, SATA da 6 GBit/ + case Sharkoon TG5.
fabbius69 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Pos, addio per sempre agli scontrini: ec...
Google presenta Gemini 3.1 Pro: adesso p...
GeForce RTX introvabili? Gli utenti rico...
I videogiochi perdono sempre più ...
Tornano 2 portatili HP tuttofare a buon ...
POCO X8 Pro e Pro Max: ecco tutte le spe...
Torna a 899€ DREAME X50 Ultra Complete, ...
Il mercato smartphone è cresciuto...
MacBook Pro M5 scontato di 200€ reali: 1...
Perplexity cambia idea: la pubblicit&agr...
Smartphone Android in offerta su Amazon:...
OPPO ha un altro Find X9 in arrivo ed &e...
Meta ci riprova: l'azienda starebbe lavo...
Corsair 4000D Vault Galaxy e Nova: color...
Amazfit T-Rex Ultra 2: lo smartwatch 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:07.


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