Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Abbiamo provato la Gigabyte Radeon RX 9070 GRE Gaming OC, nuova proposta RDNA 4 che si inserisce tra GeForce RTX 5060 Ti e RTX 5070. Prestazioni solide in rasterizzazione e ray tracing, frequenze elevate grazie all'overclock di fabbrica e raffreddamento efficace: ecco come si comporta nei nostri test.
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare
Con tripla lente, tracking sincronizzato, visione notturna a colori e controllo locale senza abbonamenti, la OMVI 3i WiFi porta la sicurezza domestica a un livello molto più moderno, ma senza trasformarla in un sistema complicato da installare o usare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-03-2004, 10:20   #1
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
Chi mi fa un favore?

Ciao a tutti avrei bisogno di un volontario che mi scriva un prog. in c o java che fa queste 2 semplici cose:
apre un file lista.txt
mette in ordine alfabetico le righe di testo
riscrive il tutto o sullo stesso file o su un altro file sempre .txt

grazie
dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2004, 18:11   #2
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Sei diventato automaticamente la mia cavia in "ergonomia delle interfacce grafiche".

In allegato c'è l'applicazione (un jar in uno zip)

Se usi Windows -> doppio click sul file Jar

Se usi linux -> java -jar OrdinaTesto.jar
L'interfaccia ha 3 bottoni, il "+" per aggiungere file alla lista, il "-" per rimuoverli dalla lista, la "v" per la procedura di ordinamento.

Funzia così:

1) selezioni i file da ordinare con il +.
2) se vuoi, tra i file immessi nell lista ne scegli solo alcuni
3) ordini il testo
3.1) ordini e sovrascrivi tutti i file o solo quelli selezionati (se ne hai selezionato almeno uno, altrimenti la prima casella non dovrebbe essere attiva)
3.2) ordini e lasci che il programma generi automaticamente un nome per il file da salvare (nella forma "nomeFile(ordinato)N.txt"). Nessun file viene sovrascritto. Ti viene chiesto di selezionare una cartella di destinazione per i file generati.
3.3) ordini e scegli un nome per ciascun file da salvare.

La cosa dovrebbe essere intuitiva; inoltre, l'interfaccia per l'ordinamento dovrebbe saltar fuori con le caselle già selezionate in base alla probabile intenzione dimostrata nella "scelta dei file".

Se hai "caricato" 10 file e ne poi hai selezionati 3 ti proporrà di ordinare i file selezionati generando automaticamente i nomi.

Se hai caricato un solo file o ne hai selezionato 1 solo, proporrà di ordinare i file selezionati scegliendo un nome per il file.

La sovrascrittura non è mai scelta automaticamente.

Garanzie di funzionamento : beh, ovviamente 0.

Ciao.

Ultima modifica di PGI : 07-03-2004 alle 19:02.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2004, 18:13   #3
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
ops...l'allegato
Allegati
File Type: zip ordinatesto.zip (8.6 KB, 25 visite)
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2004, 19:30   #4
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
Funziona!!!!!!!!!!!!!!!!

e' semplice e intuitivo prorprio come piace a me!

Non e' che mi potresti aggiungere la possibilita' di evitare di fargli scrivere alcune parole nel file che crea?

ad esempio se la riga originale e':

\Back\pietro\Musica leggera\Ambient-chill out\

e io inserisco

\Back\pietro\Musica leggera\

mi dovrebbe scrivere solamente

Ambient-chill out\

Comunque grazie mille!

dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2004, 22:10   #5
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Quote:
Originariamente inviato da dottorkame
Non e' che mi potresti aggiungere la possibilita' di evitare di fargli scrivere alcune parole nel file che crea?

ad esempio se la riga originale e':

\Back\pietro\Musica leggera\Ambient-chill out\

e io inserisco

\Back\pietro\Musica leggera\

mi dovrebbe scrivere solamente

Ambient-chill out\
Per rendere "automatica" la procedura occorre la garanzia che tutte le linee abbiano un formato quantomeno omogeneo.

Ad esempio, se il testo contiene una lista di file con relativa directory si potrebbe anche fare, nel tuo caso mi sembra che si voglia mantenere solo l'ultima cartella più l'eventuale nome del file. Però, ripeto, il formato della linea dovrebbe essere sempre più o meno quello.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2004, 23:39   #6
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
Si il formato e' sempre quello ogni riga indica la posizione di una cartella
dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 12:09   #7
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
Codice:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <fstream>

using namespace std;

class format
{
public:
	void operator () (string &s)
	{
		s += "\n";
	}
};

int main(int argc, char**) 
{
	if (argc != 1) 
	{
		cout << "usage: sort\n";
		return -1;
	}
	
	ifstream ifstr("testo.txt");
	ofstream ofstr("sorted.txt");
	
	vector<string> v;
	copy(istream_iterator<string>(ifstr), istream_iterator<string>(),
		inserter(v, v.end()));
		
	sort(v.begin(), v.end());
	
	for_each(v.begin(), v.end(), format());
	
	copy(v.begin(), v.end(), ostream_iterator<string>(ofstr));
	
	return 0;
}
testo.txt contiene le tue stringhe da ordinare
sorted.txt conterrà il risultato



EDIT: non è per fare competizione eh, è solo che mi andava di provare a farlo con le stl
se poi mi gira lo rendo anche più utile... ma scordatevi la gui, shell e via

Ultima modifica di ri : 08-03-2004 alle 12:59.
ri è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 15:07   #8
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Un po' di sana competizione non ha mai ucciso nessuno!

E poi ogni tanto fa bene trovare qualcuno che pone un problema e chiede un piccolo software per risolverlo, mantiene in esercizio le dita

x Dottorkame.

Adesso sono un po' alle strette, appena riesco a ritagliarmi un po' di tempo vedo un po' come fare per "formattare" l'output.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 21:25   #9
dottorkame
Senior Member
 
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
ok grazie non e' che potresti postare anche tu i sorgenti del tuo programmino?
dottorkame è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 22:05   #10
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Come no.

Ordinatesto.java

Codice:
package it.ordinatesto;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

public class OrdinaTesto implements ActionListener {
    JFileChooser fileChooser = null;
    JList fileList = null;
    DefaultListModel listModel = null;
    JFrame frame = null;
    SortDialog sortDialog = null;
    
    final String ACTION_ADD_FILE = "Aggiungi un file alla lista";
    final String ACTION_REMOVE_FILE = "Rimuovi un file dalla lista";
    final String ACTION_SORT = "Ordina...";
    
    
    public static void main(String[] args) {
	new OrdinaTesto().initGUI();
    }
    
    public OrdinaTesto() {
	
    }
    
    public void initGUI() {
	frame = new JFrame("Ordina testo");
	
	fileChooser = new JFileChooser();
	fileChooser.setFileFilter(new TxtFilter());
	fileChooser.setMultiSelectionEnabled(true);
	
	Container contentPane = frame.getContentPane();
	contentPane.add(new XToolBar(), BorderLayout.NORTH);
	
	fileList = new JList((listModel = new DefaultListModel()));
	
	contentPane.add(fileList, BorderLayout.CENTER);
	
	frame.setSize(300, 400);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setVisible(true);
	
	sortDialog = new SortDialog();
    }
    
    /* procedura per ordinare i file di testo */
    void sortTextFiles() {
	/* compone la configurazione per la finestra di dialogo */
	int config = 0;
	
	boolean hasSelection = fileList.getSelectedValues().length > 0;
	boolean hasMultipleSelection = fileList.getSelectedValues().length > 1;
	
	Vector files = new Vector();
	
	if(hasSelection) {
	    /* sort selection*/
	    config |= SortDialog.SORT_SELECTION;
	    
	    if(hasMultipleSelection) {
		/* genera nomi automatici */
		config |= SortDialog.AUTOSAVE;
	    } else {
		config |= SortDialog.SAVEAS;
	    }
	} else {
	    /*sort all */
	    config |= SortDialog.SORT_ALL;
	    
	    /* se c'è un solo file...*/
	    if(listModel.size() == 1) {
		config |= SortDialog.SAVEAS;
	    } else {
		config |= SortDialog.AUTOSAVE;
	    }
	}
	
	int answer = sortDialog.showDialog(frame, config);
	if(answer > 0) {
	    boolean sortSelection = false;
	    
	    if((answer & SortDialog.SORT_ALL) == SortDialog.SORT_ALL) {
		sortSelection = false;
		int numComp = listModel.size();
		for(int i = 0; i < numComp; i++) {
		    files.add(listModel.get(i));
		}
		
	    } else if((answer & SortDialog.SORT_SELECTION) == SortDialog.SORT_SELECTION) {
		sortSelection = true;
		Object[] selectedFiles = fileList.getSelectedValues();
		for(int i = 0; i < selectedFiles.length; i++) {
		    files.add(selectedFiles[i]);
		}
	    }
	    
	    //a questo punto files contiene i file da salvare. Come li salviamo?
	    
	    if((answer & SortDialog.AUTOSAVE) == SortDialog.AUTOSAVE) {
		/*seleziona la cartella di destinazione */
		String directoryName = null;
		try {
		    directoryName = selectDirectory();
		} catch(IOException e) {
		    System.out.println(e);
		}
		
		/* salva i file */
		if(directoryName != null) {
		    for(Iterator lista = files.iterator(); lista.hasNext(); ) {
			File file = new File(lista.next().toString());
			try {
			    sortAndAutoSave(file, directoryName);
			} catch(IOException e) {
			    System.out.println(e);
			}
		    }
		}
	    } else if((answer & SortDialog.OVERWRITE) == SortDialog.OVERWRITE) {
		for(Iterator lista = files.iterator(); lista.hasNext(); ) {
		    File file = new File(lista.next().toString());
		    try {
			sortAndOverWrite(file);
		    } catch(IOException e) {
			System.out.println(e);
		    }
		}
	    } else if((answer & SortDialog.SAVEAS) == SortDialog.SAVEAS) {
		try {
		    for(Iterator lista = files.iterator(); lista.hasNext(); ) {
			File file = selectSaveFile();
			if(file != null) {
			    sortAndSaveAs(new File(lista.next().toString()), file);
			} else {
			    /* un break per tutti */
			    break;
			}
		    }
		} catch(IOException e) {
		    e.printStackTrace(System.err);
		}
	    }
	    JOptionPane.showMessageDialog(frame, "Fatto");
	}
    }
    
    
    
    File selectSaveFile() {
	File selection = null;
	
	fileChooser.resetChoosableFileFilters();
	fileChooser.setFileFilter(new TxtFilter());
	fileChooser.setMultiSelectionEnabled(false);
	fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
	fileChooser.setDialogTitle("Salva con nome");
	int answer = fileChooser.showSaveDialog(frame);
	if(answer == JFileChooser.APPROVE_OPTION) {
	    selection = fileChooser.getSelectedFile();
	}
	return selection;
    }
    
    String selectDirectory() throws IOException {
	String selection = null;
	
	fileChooser.resetChoosableFileFilters();
	fileChooser.setMultiSelectionEnabled(false);
	fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
	fileChooser.setDialogTitle("Directory di destinazione");
	int answer = fileChooser.showOpenDialog(frame);
	if(answer == JFileChooser.APPROVE_OPTION) {
	    selection = fileChooser.getSelectedFile().getCanonicalPath();
	}
	return selection;
    }
    
    /* estra le singole linee di testo dal file */
    Object[] parseLines(File file) {
	try {
	    BufferedReader reader = new BufferedReader(new FileReader(file));
	    Vector lines = new Vector();
	    String line = null;
	    while((line = reader.readLine()) != null) {
		lines.add(line);
	    }
	    reader.close();
	    return lines.toArray();
	} catch (IOException e) {
	    System.exit(0);
	}
	return null;
    }
    
    /* ordina il testo */
    void sort(Object[] lines) {
	Arrays.sort(lines);
    }
    
    /* legge il file, lo ordina e lo sovrascrive */
    void sortAndOverWrite(File file) throws IOException {
	Object[] lines = parseLines(file);
	sort(lines);
	StringBuffer buffer = new StringBuffer();
	String separator = System.getProperty("line.separator");
	for(int i = 0; i < lines.length; i++) {
	    buffer.append(lines[i]);
	    if(i < lines.length -1) {
		buffer.append(separator);;
	    }
	}
	PrintWriter out = new PrintWriter(
	    new BufferedWriter(new FileWriter(file)));
	out.print(buffer.toString());
	out.close();
    }
    
    /* legge il file, lo ordina, genera un nome di file */
    void sortAndAutoSave(File file, String  saveDirectory) throws IOException {
	Object[] lines = parseLines(file);
	sort(lines);
	StringBuffer buffer = new StringBuffer();
	String separator = System.getProperty("line.separator");
	for(int i = 0; i < lines.length; i++) {
	    buffer.append(lines[i]);
	    if(i < lines.length -1) {
		buffer.append(separator);;
	    }
	}
	
	String newName = file.getName();
	newName = newName.substring(0, newName.length()-4);
	newName += "(ordinato)";
	
	File fileDest = new File(saveDirectory, newName+".txt");
	
	/*deve controllare se il file esiste */
	int index = 1;
	int ciclusInterruptus = 1000;
	while(fileDest.exists() == true && index < ciclusInterruptus) {
	    fileDest = new File(saveDirectory, newName+index+".txt");
	    index++;
	}

	PrintWriter out = new PrintWriter(
	    new BufferedWriter(new FileWriter(fileDest)));
	out.print(buffer.toString());
	out.close();
    }
    
    /* legge il file e lo salva nel file di destinazione */
    void sortAndSaveAs(File file, File fileDest) throws IOException {
	Object[] lines = parseLines(file);
	sort(lines);
	StringBuffer buffer = new StringBuffer();
	String separator = System.getProperty("line.separator");
	for(int i = 0; i < lines.length; i++) {
	    buffer.append(lines[i]);
	    if(i < lines.length -1) {
		buffer.append(separator);;
	    }
	}
	
	/*deve controllare se il file esiste */

	PrintWriter out = new PrintWriter(
	    new BufferedWriter(new FileWriter(fileDest)));
	out.print(buffer.toString());
	out.close();
    }
    
    /* crea un bottone già impostato */
    JButton createButton(String command, Icon icon) {
	JButton button;
	if(icon == null) {
	    button = new JButton(command);
	} else {
	    button = new JButton(icon);
	    button.setToolTipText(command);
	}
	button.setActionCommand(command);
	button.addActionListener(this);
	return button;
    }
    
    /* aggiunge un file alla lista */
    void addFile() {
	fileChooser.resetChoosableFileFilters();
	fileChooser.setFileFilter(new TxtFilter());
	fileChooser.setMultiSelectionEnabled(true);
	fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
	fileChooser.setDialogTitle("Aggiungi alla lista");
	
	int answer = fileChooser.showOpenDialog(frame);
	if(answer == JFileChooser.APPROVE_OPTION) {
	    File[] files = fileChooser.getSelectedFiles();
	    boolean match = false;
	    for(int i = 0; i < files.length; i++) {
		/* verifica che il file non sia già presente */
		match = false;
		for(Enumeration lista = listModel.elements(); lista.hasMoreElements() && !match; ) {
		    File file = (File)lista.nextElement();
		    if(file.equals(files[i])) {
			match = true;
		    }
		}
		
		if(match == false) {
		    listModel.addElement(files[i]);
		}
	    }
	}
    }
    
    /* rimuove un file dalla lista */
    void removeFile() {
	Object[] selection = fileList.getSelectedValues();
	for(int i = 0; i < selection.length; i++) {
	    listModel.removeElement(selection[i]);
	}
    }
    
    public void actionPerformed(ActionEvent e) {
	String command = e.getActionCommand();
	
	if(command == ACTION_ADD_FILE) {
	    addFile();
	} else if(command == ACTION_REMOVE_FILE && listModel.size() > 0) {
	    removeFile();
	} else if(command == ACTION_SORT && listModel.size() > 0) {
	    sortTextFiles();
	}
    }
    
    /* barra dei comandi */
    class XToolBar extends JToolBar {
	XToolBar() {
	    setFloatable(false);
	    add(createButton(
	    ACTION_ADD_FILE,
	    new ImageIcon(getClass().getResource("/it/ordinatesto/addfile.PNG"))));
	    add(createButton(
	    ACTION_REMOVE_FILE,
	    new ImageIcon(getClass().getResource("/it/ordinatesto/removefile.PNG"))));
	    add(createButton(
	    ACTION_SORT,
	    new ImageIcon(getClass().getResource("/it/ordinatesto/sort.PNG"))));
	}
    }
    
    /* filtro per file con estensione .txt */
    class TxtFilter extends javax.swing.filechooser.FileFilter {
	public boolean accept(File file) {
	    if(file.isDirectory()) {
		return true;
	    } else if(file.getName().endsWith(".txt")) {
		return true;
	    }
	    return false;
	}
	
	public String getDescription() {
	    return "txt file";
	}
    }
}
SortDialog.java

Codice:
/*
 * SortDialog.java
 *
 * Created on 7 marzo 2004, 16.00
 */

package it.ordinatesto;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 *
 * @author  Administrator
 */
public class SortDialog {
    public static final int SORT_SELECTION = 2;
    public static final int SORT_ALL = 4;
    
    public static final int OVERWRITE = 8;
    public static final int AUTOSAVE = 16;
    public static final int SAVEAS = 32;
    
    JPanel container = null;
    
    /* ordina selezione, ordina tutto */
    JCheckBox sortSelection = new JCheckBox("Ordina file selezionati");
    JCheckBox sortAll = new JCheckBox("Ordina tutti i file nella lista");
    
    /* ordina e sovrascrive, ordina e salva con nome, ordina e salva con nome auto */
    JCheckBox overwrite = new JCheckBox("Sovrascrive i file originali");
    JCheckBox autoSave = new JCheckBox("Genera nomi automatici");
    JCheckBox saveAs = new JCheckBox("Salva con nome");
    
    /** Creates a new instance of SortDialog */
    public SortDialog() {
	container = new JPanel();
	
	ButtonGroup group1 = new ButtonGroup();
	group1.add(sortSelection);
	group1.add(sortAll);
	
	ButtonGroup group2 = new ButtonGroup();
	group2.add(overwrite);
	group2.add(autoSave);
	group2.add(saveAs);
	
	BoxLayout layout = new BoxLayout(container, BoxLayout.Y_AXIS);
	container.setLayout(layout);
	container.add(sortSelection);
	container.add(sortAll);
	
	container.add(new JSeparator(JSeparator.HORIZONTAL));
	
	container.add(overwrite);
	container.add(autoSave);
	container.add(saveAs);
	
	resetConfig();
    }
    
    public void resetConfig() {
	sortSelection.setEnabled(true);
	sortAll.setEnabled(true);
	
	overwrite.setEnabled(true);
	autoSave.setEnabled(true);
	saveAs.setEnabled(true);
	
	sortAll.setSelected(true);
	autoSave.setSelected(true);
    }
    
    /* imposta le caselle di selezione in base al filtro config */
    void parseConfig(int config) {
	resetConfig();
	
	if((config & SORT_SELECTION) == SORT_SELECTION) {
	    sortSelection.setSelected(true);
	} else if((config & SORT_ALL) == SORT_ALL) {
	    sortAll.setSelected(true);
	    sortSelection.setEnabled(false);
	}
	
	if((config & OVERWRITE) == OVERWRITE) {
	    overwrite.setSelected(true);
	} else if((config & AUTOSAVE) == AUTOSAVE) {
	    autoSave.setSelected(true);
	} else if((config & SAVEAS) == SAVEAS) {
	    saveAs.setSelected(true);
	}
    }
    
    public int showDialog(Component parent, int config) {
	parseConfig(config);
	
	
	int answer = JOptionPane.showConfirmDialog(parent,container,"Ordina",JOptionPane.OK_CANCEL_OPTION);
	if(answer == JOptionPane.OK_OPTION) {
	    answer = 0;
	    
	    if(sortSelection.isSelected() == true) {
		answer |= SORT_SELECTION;
	    } else if(sortAll.isSelected() == true) {
		answer |= SORT_ALL;
	    }
	    
	    if(overwrite.isSelected() == true) {
		answer |= OVERWRITE;
	    } else if(autoSave.isSelected() == true) {
		answer |= AUTOSAVE;
	    } else if(saveAs.isSelected() == true) {
		answer |= SAVEAS;
	    }
	    
	} else {
	    answer = -1;
	}
	return answer;
    }
    
}
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 22:11   #11
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
vien quasi da ridere a scoprire che in tutto quel pappardellone, il metodo che si occupa di ordinare le linee è:

/* ordina il testo */
void sort(Object[] lines) {
Arrays.sort(lines);
}
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 22:12   #12
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
non c'è niente da fare, a me java fa venire i brividi ogni volta che lo vedo ^^''''''
è così bello il c/c++ ^^'''''
ri è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 22:34   #13
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Non oso immaginare il codice C/C++ di un'applicazione dotata di interfaccia grafica che gira, in versione binaria, su Linux, Solaris, MacOs e Windows
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 22:47   #14
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
e .NET c'è solo per Windows (gnè gnè gnè ).

Naturalmente è tutto detto per scherzo. C è una pietra miliare.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2004, 23:11   #15
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
fosse per me dovremmo tornare tutti alla shell
gui di merda ^^'
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 08:38   #16
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
400 righe per una .....

certo che siete messi proprio come il

a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 08:41   #17
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
ci avrei giocato tutto che avresti postato
nella mia versione senza gui le righe sono veramente poche
anche nel suo lo sarebbero se non avesse interfaccia grafica
facci vedere in quante righe lo scrivi tu che sono curioso (non è una sfida, sono curioso davvero di vedere come si scriva in fortrand una roba del genere)
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 09:31   #18
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
Ma lui non te lo scrive in Fortran, ma in VBA e dato che "il basic è un dialetto del Fortran" allora è come se lo scrivesse in Fortran...
Inoltre scrivendo in VBA x Excel "hai già la migliore nterfaccia grafica possibile senza scrivere una riga di codice"...

Ovviamente sono citazioni dell'a2000pensiero
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 09:39   #19
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
ri è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2004, 09:44   #20
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
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
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Recensione Vivo X300 Ultra: fotocamera eccezionale, ma prezzo proibitivo Recensione Vivo X300 Ultra: fotocamera ecceziona...
Xiaomi 17T Pro recensione: zoom Leica 5x e batteria silicio-carbonio per l'alternativa ai top Xiaomi 17T Pro recensione: zoom Leica 5x e batte...
UE, arriva il pacchetto per la sovranit&...
Apple sceglie Berlino per il suo quinto ...
Invisix, lo spinout di ASML, raccoglie 2...
Cryorig svela Lull, case con radiatore i...
Plaud Team, la soluzione di trascrizione...
OmniBook Ultra 16 e OmniBook X 14, anche...
G.SKILL porta al Computex 2026 una serie...
Biwin al Computex 2026: RAM DDR5 Origin ...
Dimenticatevi OS e app, per Microsoft ci...
Arctic al Computex 2026: Freezer 61, ven...
Siamo stati nel quartier generale di MSI...
AIO senza pompa: Enermax presenta il fut...
3 mesi gratis di Google AI Pro: ecco la ...
realme 16 5G: ufficiale la data di lanci...
GeForce RTX 5060 a poco più di 30...
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: 07:07.


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