Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme
ASUS e Noctua tornano a collaborare con la GeForce RTX 5080 Noctua OC Edition, una scheda pensata per chi cerca potenza estrema e silenziosità assoluta. Il nuovo sistema di raffreddamento, con tre ventole Noctua NF-A12x25 G2 da 120 mm e una camera di vapore maggiorata, promette temperature record e rumorosità quasi impercettibile. Non mancano dual BIOS, materiali di qualità e ampie possibilità di overclock. Ma quanto migliora davvero rispetto alla Founders Edition? Scoprilo nel nostro test completo.
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Il più recente robot per la pulizia domestica di Dreame, modello Aqua10 Ultra Roller, abbina un potente motore di aspirazione della polvere a un sofisticato sistema di lavaggio con rullo integrato. Il tutto governato dalla logica di intelligenza artificiale, per i migliori risultati
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-03-2004, 09:52   #21
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da cionci
Comunque prendendo il programma scritto da ri e facendogli una interfaccia con le wxWindows si ha un risultato valido in meno della metà delle righe del programma Java
se poi usi le xlaWindows ti bastano 4 (quattro) righe

in Fortran invece sono 10 (dieci)
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 10:05   #22
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Stavolta allora facci...ma in Fortran e non in uno dei suoi dialetti...un programma equivalente a quello fatto da PGI e con una interfaccia grafica simile... Però stavolta lo pretendo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 10:09   #23
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
sisi altrimenti ban
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 11:24   #24
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Se interessa vi posto il codice di un accessorio per i filechooser che permette di ricercare un file, come in allegato:



Però sono 6 classi
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 11:38   #25
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
che c'entra con l'argomento scusa?

per rimanere IT ( ), ho lavoricchiato su quel codice...

Codice:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <fstream>

using namespace std;

struct shellinput
{
	vector<string>	filelist_;
	string			t_file_;
	string			o_file_;
	
	void parseinput(int argc, char **argv)
	{
		for(int i = 1; i < argc; i++)
		{
			if(strcmp(argv[i], "-t") == 0)
				t_file_ = argv[++i];
			if(strcmp(argv[i], "-o") == 0)
				o_file_ = argv[++i];
			else
				filelist_.push_back(argv[i]);
		}
	}
};

class sorter
{	
public:		
	sorter(vector<string> &v) : v_(v) 
	{}
	
	void operator() (string &filename)
	{
		ifstream fs(filename.c_str());		
		if(!fs.is_open())
		{
			cout << "file \"" << filename << "\" error" << endl;
			return;
		}		
		
		copy(istream_iterator<string>(fs), istream_iterator<string>(),
			inserter(v_, v_.end()));
			
		sort(v_.begin(), v_.end());	
	}	
	
private:
	vector<string> &v_;
};

class transformer
{
public:
	transformer(string &filename)
	{
		ifstream fs(filename.c_str());		
		if(fs.is_open())
		{
			copy(istream_iterator<string>(fs), istream_iterator<string>(),
				inserter(bannedstring_, bannedstring_.end()));
		}
	}
	
	void operator() (string &str)
	{
		
		basic_string <char>::size_type index;


		for(vector<string>::iterator it = bannedstring_.begin(); it != bannedstring_.end(); it++)
		{
			index = str.find(*it);
			if(index != basic_string <char>::npos)
				str.replace(index, (*it).size(), "");
		}
	}
	
private:
	vector<string> bannedstring_;
};

class printer
{
public:
	printer(string &filename)
	{	
		of = NULL;
		
		if(filename != "")
		{
			of = new ofstream;
			if(of != NULL)
			{
				of->open(filename.c_str());
				if(of->is_open())
				{
					cout_buf = cout.rdbuf();
					cout.rdbuf(of->rdbuf());
				}
				else
					cout << "WRN: error opening file \"" << filename << "\", output redirected to stdout" << endl;
			}
		}
	}
	
	~printer()
	{
		if(of != NULL)
		{
			cout.rdbuf(cout_buf);
			if(of->is_open())
				of->close();
			// delete of; ????????
		}
	}
	
	void operator() (string &str)
	{
		cout << str << endl;
	}
	
private:
	ofstream *of;
	streambuf *cout_buf;
};

int main(int argc, char** argv)
{
	if (argc == 1) 
	{
		cout << "usage:\tsort [OPTION] [FILE ...]" << endl;
		cout <<	"option:\t -t [file] specify a file containing a list of string which must not be printed" << endl;
		cout << "option:\t -o [file] specify where to write the output (standard output is default)" << endl;
		return -1;
	}
		
	shellinput sh;
	sh.parseinput(argc, argv);
	
	vector<string> v;	
	for_each(sh.filelist_.begin(), sh.filelist_.end(), sorter(v));
	for_each(v.begin(), v.end(), transformer(sh.t_file_));
	for_each(v.begin(), v.end(), printer(sh.o_file_));
	
	return 0;
}
l'exe lo potete trovare qua

si usa così:

Es 1. StringSort file1.txt file2.txt file3.txt
legge il contenuto dei 3 file, lo ordina e lo stampa a video

Es 2. StringSort -t no.txt file1.txt file2.txt file3.txt
legge il contenuto dei 3 file, lo ordina, rimuove tutte le stringhe contenute nel file no.txt dal risultato ordinato e lo stampa a video


per scrivere il risultato su file ci sono 2 modi:
StringSort file1.txt file2.txt file3.txt > risultato.txt
oppure
StringSort -o risultato.txt file1.txt file2.txt file3.txt




sono 150 righe, ma con interfaccia (shell, che per sta roba secondo me è più comoda )

Ultima modifica di ri : 09-03-2004 alle 11:42.
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 12:57   #26
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Ho visto che utilizzava un filechooser pensavo potsse essere utile approfondire.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 14:11   #27
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Via ragazzi, non accaniamoci contro una cosa fatta in quattro e quattr'otto..

La prossima volta che ci rimetto mano lo allungo almeno del doppio (con le stesse funzioni, commenti esclusi), in modo da ottenere un codice decente (perchè così com'è è indegno, ma non pensavo che tutto il forum ne avrebbe fatto l'autopsia )
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 14:50   #28
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
ricorda, le GUI sono la rovina dei software
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 15:27   #29
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086


tengo a precisare che verrebbe lungo il doppio non per l'interfaccia, ma per rendere il codice di facile manutenzione e predisposto perchè le sue funzionalità siano estese. Al di là dello specifico software, appare chiaro che, così com'è è strutturato, se capitasse in mano un domani ad un altro programmatore mi tirerebbe 3 accidenti al minuto.

Doveva essere una cosa "in sordina", quà è saltata fuori l'occhiuta crèm-de-la-crèm a puntar dita nelle piaghe, mi sento in imbarazzo...

Bisogna avvertire le "nuove leve": non pensate che nella realtà si programmi come nel codice che ho postato, quello è un "codice tra amici", se ci mettete altre 20 linee diventa "spaghetti-code" (che ch'avranno stì americano contro gli spaghetti... )
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 15:43   #30
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
vedi, vedi, almeno usando c++ con le STL il codice è autoparlante e non puoi scriverlo male, altrimenti manco ti compila
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 17:00   #31
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086


La preghiera che ogni programmatore recita la sera prima di andare a letto finisce proprio con "...e fa sì che non mi debba mai capitare di aggiornare del codice autoparlante, amen".
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 17:06   #32
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
d'oh
ri è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2004, 07:22   #33
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Piccolo contributo

Ciao ri,
puoi ridurre ancora il codice usando il "set" al posto del "vector" poichè mantiene costantemente ordinata la lista e non hai bisogno di "sortarlo".Probabilmente non hai bisogno neanche di function object comparatore.

E' in casi come questi che il set si rileva come + veloce del vector.
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2004, 07:59   #34
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
uhm, hai ragione
comunque non sto usando functor comparatori, il 'sorter' è solo un modo comodo per leggere il file e inserirlo nel vettore
grazie per l'appunto
ri è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
La ''guerra'' per scegliere il nuovo amm...
ChatGPT Atlas ufficiale: il browser Open...
L'interessante video di un booster di un...
Il primo lancio di un razzo spaziale Ari...
Nuova Alfa Romeo Tonale: ecco tutti gli ...
Corsair Air 5400: case a tripla camera c...
NPC parlanti e realistici che girano sul...
Incentivi auto 2025: pubblicato l'elenco...
Ewiva inaugura a Piacenza la prima stazi...
BOOX amplia la gamma E Ink: arrivano Pal...
Perché il web ieri è crollato: come il D...
Ryzen 9 9950X3D2 e Ryzen 7 9850X3D in ar...
Alice Pizza accelera sull’innovazione: c...
Via acari e polvere da materassi, tappet...
Apple sfida l’UE in tribunale: “Il Digit...
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: 05:52.


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