Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-10-2005, 14:27   #1
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
[C] ..e le stringhe?!?

raga mi sto da pochissimo avvicinando al C ma già programmo in Turbo Pascal, Visual Basic 6 ed un po di .Net e di derivazione anche Delphi 7...

in tutti questi linguaggi esiste la definizione di variabile stringa:"string" ma in C questa non c'è...

ora mi sta bene dichiarare le stringhe come array di caratteri MA se devo leggere un intero rigo di un file per poi analizzarlo come faccio?!

Per dichiarare un'array gli devo dare una lunghezza tipo:
Codice:
char Nome[14];
giusto?
ma io come faccio a sapere a priori la lunghezza della riga da leggere?

qualcuno mi dice la procedura che si usa in C per leggere una intera riga da file?

grazie mille
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 15:10   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
In quel modo hai dichiarato un'array caratteri di grandezza fissa. Per avere un'array di caratteri di lunghezza indeterminata, devi usare un puntatore, quindi:
Codice:
char * stringa;
E gestire la sua allocazione (malloc) il suo ridimensionamento (realloc) e l'eliminazione (free). Benvenuto nel mondo del C!
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 15:11   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Usa fgets, con un buffer di dimensione ragionevole.

Se le tue righe possono avere dimensioni abnormi, devi cambiare tecnica (ad es. mmap), oppure leggere un byte alla volta.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 15:25   #4
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
ok mettiamo che per qualche ragione io devo leggere e memorizzare in una variabile un intero file!

facciamo che il file abbia 10 righe...
come si fa?

potreste scrivere un po di codice?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 16:27   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il metodo classico è allocare un buffer grande quanto l'intero file, e leggerlo dentro. E' un metodo triviale ma poco efficiente, soprattutto se il file è grande e hai poca memoria. Meglio mappare il file nello spazio di indirizzi del processo.

Ad esempio questo programma mappa un file, e lo stampa un carattere alla volta (è per linux/unix, ma ti rende l'idea):

Codice:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
	int fd;
	struct stat st;
	char *map;
	int x;

	if (argc<2) {
		printf("%s <file>\n", argv[0]);
		return -1;
	}

	fd = open(argv[1], O_RDONLY);
	if (fd<0) {
		perror("open");
		return -1;
	}

	fstat(fd, &st);

	map = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
	if (map==MAP_FAILED) {
		perror("mmap");
		return -1;
	}
	close(fd);

	for (x=0; x<st.st_size; ++x)
		printf("%c", map[x]);

	munmap(map, st.st_size);
	return 0;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 19:00   #6
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
niente di meno quello che nei 3 linguaggi che conosco si fa con:

VB6:
Codice:
dim variabile_destinazione as string
dim rigo_letto as string

open "c:\esempio.txt" for input as #1
    while not eof(1)
       input #1, rigo_letto
       variabile_destinazione=variabile_destinazione+rigo_letto
    wend
close #1
PASCAL:
Codice:
Var file:text;
     rigo:string;
     carattere:char;

   assign('c:\esempio.txt',file);
   reset(file);
   while not eof (file) do
   begin
        read(carattere,file);
        rigo=rigo + carattere;
   end;
(scritto alla buona )

si trasforma in tutto quel casino?!? non ci voglio credere

non esiste un modo più semplice?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC

Ultima modifica di leadergl : 19-10-2005 alle 19:14.
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 21:09   #7
Joker84
Senior Member
 
L'Avatar di Joker84
 
Iscritto dal: Oct 2005
Città: Pompei(NA)
Messaggi: 3087
prova a contare quanti bytes occupa il file(in una var int)es alloca un'array di caratteri di tali dimensioni....
__________________
My Deviant-Gallery

 MacBook Pro 13'' Retina i5 dual-core a 2,6GHz - 8GB Ram - 256GB SSD :: iPhone 12 128GB :: iPad 7 128GB WiFi :: Apple Watch 4 (40mm) 
Joker84 è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 07:55   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da leadergl
niente di meno quello che nei 3 linguaggi che conosco si fa con:

si trasforma in tutto quel casino?!? non ci voglio credere
Ehm non è la stessa cosa. Quello che ti ho postato (che non è affatto difficile) è un procedimento molto più efficiente rispetto ai tuoi esempi.

Quote:
non esiste un modo più semplice?
Ok vuoi il modo "triviale". Anche questo scritto alla" buona":
Codice:
	FILE *f = fopen("esempio.txt", "rb");
	struct stat st;
	char *variabile;
	stat("esempio.txt", &st);
	variabile = calloc(st.st_size+1, 1);
	fread(variabile, 1, st.st_size, f);
	fclose(f);
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 09:02   #9
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
In Python:
Codice:
f = open('pippo.dat')
s = f.read()
f.close()
print s
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 11:29   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cdimauro
In Python:
Codice:
f = open('pippo.dat')
s = f.read()
f.close()
print s
In Bash:
Quote:
foo=`cat pippo.dat`
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 09:11   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110


__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 09:38   #12
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
Quote:
Originariamente inviato da ilsensine
Ok vuoi il modo "triviale". Anche questo scritto alla" buona":
Codice:
	FILE *f = fopen("esempio.txt", "rb");
	struct stat st;
	char *variabile;
	stat("esempio.txt", &st);
	variabile = calloc(st.st_size+1, 1);
	fread(variabile, 1, st.st_size, f);
	fclose(f);
        free(variabile);

ok le cose alla buona, ma non diamogli brutti vizi
ri è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 11:06   #13
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
io non voglio le cose alla buona ma è che di C non so ancora nulla, sto imparando...e non capisco perchè si fa tutto questo casino per leggere da un file....boh....

cmq per la procedura alla buona direi:

1) aprire file in lettura
2) redimensionare spazio di memoria in cui memorizzare
3) leggere il carattere
4) ripetere le operazioni 2 e 3 finchè non finisce il rigo o il file
5) chiudere il file

giusto?

mentre la versione "estesa", ovvero quella fatta come si deve, che faceva nel dettaglio?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 12:09   #14
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Ancora non ho capito se vuoi:

1 - leggere tutto il file in memoria
2 - leggerlo per righe (potendo assumere una dimensione ragionevole per le righe)
3 - leggerlo per righe ma potendo gestire righe anche di 736823763 caratteri...

Credo che con fgets, come ti ho suggerito, puoi gestire facilmente il 2. Per 1, ti ho dato due soluzioni (una elegante, l'altra non molto dissimile ai tuoi esempi). Rimane 3, che sinceramente non serve a niente.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 12:32   #15
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
mi interessano la 1 e la 3.
ma credo quella importante sia la 3...perchè implica un po la 1...
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 12:40   #16
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Allora fai il contrario, no? Leggi (suggerirei: mappi) il file in memoria, e da lì tiri fuori le righe. Non capisco cosa c'è di difficile...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 12:55   #17
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
il difficile è che al momento ho dimestichezza 0 col C e come teoria sto alla dichiarazione dei vettori....!!

è questo il difficile...quindi mentre in Pascal, Delphi o VB se succede un errore riesco subito a trovare il perchè e se non riesco a fare una cosa in un modo la faccio in un altro..beh in C questa flessibilità non la ho perchè non conosco niente del C...e nel tuo codice vedo strutture che ancora non conosco e che non hanno un riscontro visivo immediato negli altri linguaggi:

Codice:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
	int fd;
	struct stat st;
	char *map;
	int x;

	if (argc<2) {
		printf("%s <file>\n", argv[0]);
		return -1;
	}

	fd = open(argv[1], O_RDONLY);
	if (fd<0) {
		perror("open");
		return -1;
	}

	fstat(fd, &st);

	map = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
	if (map==MAP_FAILED) {
		perror("mmap");
		return -1;
	}
	close(fd);

	for (x=0; x<st.st_size; ++x)
		printf("%c", map[x]);

	munmap(map, st.st_size);
	return 0;
}
questo è quello che mi hai scritto per mappare tutto il file in memoria MA:
Codice:
	struct stat st;
che struttura è?

Codice:
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
a che servono tutte ste librerie?

Codice:
	fd = open(argv[1], O_RDONLY);
questa credo serva ad aprire il file in sola lettura e farlo puntare da "fd"...credo...

Codice:
	if (argc<2) {
		printf("%s <file>\n", argv[0]);
		return -1;
	}
che cavolo è "argc"? a che serve? inoltre si possono passare argomenti alla main senza che questa venga in realtà chiamata da nessuno?!?

Codice:
	fstat(fd, &st);

	map = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
e queste due funzioni?!?
"fstat" a che serve?
"mmap" credo copii l'intero file in memoria...boh?!?
"munmap" credo elimini il file dalla memoria...boh?!


come puoi vedere questi sono un sacco di punti che per uno che si avvicina al C sono un po contorti...

io ho portato l'esempio degli linguaggi perchè semplicemente conoscendo le stringhe (dichiarazione comune di una variabile) e la funzione per "aprire" e "leggere" da un file si risolve tutto....mentre in C è un casino (e sinceramente nn capisco xkè un linguaggio così potente abbia un modo così contorto per leggere da file e non disponga della variabile stringa che è troppo comoda....
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 13:05   #18
v1ruz
Senior Member
 
L'Avatar di v1ruz
 
Iscritto dal: Nov 2004
Città: $HOME
Messaggi: 1213
se sei sotto UNIX[linux o mac os x] basta che apri un terminale e fai: man <nome_funzione>e scopri tutto..altrimenti fai una ricerca su google per le funzioni...ora devo andare a lezione e non posso spiegarti sorry
__________________

Last.fm: My Profile / GamerTag XBL: Martcus / Flickr / deviantArt
iBook 12'' / MacBook Pro 13'' / iPhone 3G 16GB Black / iPod 5G 30GB / iPod Nano 2G 4GB
v1ruz è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 14:46   #19
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da leadergl
<...>
Era solo un esempio per farti capire il concetto, speravo che capissi.
Quote:
come puoi vedere questi sono un sacco di punti che per uno che si avvicina al C sono un po contorti...
E' questo il problema, non conosci abbastanza come ragiona il c...
I linguaggi che hai portato ad esempio sono tutti linguaggi ad oggetti; forse con il c++ potresti trovarti più a tuo agio, ci sono già molti oggetti pronti che possono esserti di aiuto, ma non credere che imparare ad usarlo bene sia più facile...

Non so quello che devi fare; se è per un esame, prendi la strada più semplice (fgets).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 16:00   #20
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
no, io ho capito quello che cercavi di dirmi col primo algoritmo ed è quello che cercavo...nel senso, mi spiego, sapere come si legge da file non mi serve per nessun esercizio universitario o per fare qualche esame al momento...ma siccome sto seguendo il corso di Algoritmi e Strutture Dati ma sopratutto il LABORATORIO di ASD ho bisogno di conoscere il C...così mentre il prof. (x ki come me ha fatto pascal) fa una rapida descrizione delle varie cose (if, while, array..etc..) io vorrei cercare di impararlo per bene questo linguaggio...

ovvio che non mi basta un giorno o una settimana perchè ci devo prendere dimestichezza e devo capire il modo in cui il C tratta TUTTO però voglio impararlo ed ovviamente mi son fatto delle domande, la più banale era questa sui files che non mi spiegavo come leggere un file in maniera rapida e semplice (o sempliciotta) senza l'uso di una struttura "stringa" vera e propria...

il mio intento era arrivare a quel codice che tu hai scritto ma che ovviamente a me in questo preciso momento dice poco per le mie scarse conoscenze di C (anzi nulle).

Ovvio che adesso dovrò vedermi il trattamento/uso di Array, Matrici, Puntatori in C e questo mi aprirà la strada alle Code/Liste/Alberi ed ai Files...visto che vedo uso di puntatori...però il mio intento è farle per bene le cose quindi il tuo algoritmo è perfetto ma mi serve un po per capirlo mentre una cosa un po più alla buona (come gli altri algoritmi semplificati) mi permettono un po di prendere familiarità

cmq vi ringrazio per avermi risposto, thanks
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
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: 23:12.


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