Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-01-2008, 16:27   #1
xxdavide84xx
Member
 
L'Avatar di xxdavide84xx
 
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
[JAVA]Come trasformare questo file in un file adatto per JSP?

Io ho questo file ParserDom.java
Codice:
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.swing.*;

public class ParserDOM
{
  Vector styleNodes = new Vector();

  Vector styleObjects = new Vector();

  Vector bodyNodes = new Vector();

  Vector bodyObjects = new Vector();

  public ParserDOM()
  {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = null;
    try
    {
      builder = factory.newDocumentBuilder();
    }
    catch (ParserConfigurationException e)
    {
      e.printStackTrace();
      System.exit(1);
    }
    Document document = null;
    try
    {
      JFileChooser fc = new JFileChooser();
      fc.setApproveButtonText("Apri");
      //decidi cosa mettere nel pulsante
      fc.setDialogTitle("Seleziona XML");
      //imposti nome JFileCHooser    
      fc.setFileFilter(new XMLFilter());
      // imposti filtro .xml
      int value = fc.showOpenDialog(null);
      if ( value == JFileChooser.APPROVE_OPTION )
      {
        File f = fc.getSelectedFile();
        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Verifica_tesi.txt", false)));
        document = builder.parse(f);
        findStyleNodes(document);
        createStyleObjects();
        Based_On();
        printStyles(pw);
        findBodyNodes(document);
        createBodyObjects();
        printBody(pw);
        controlli();
        pw.close();
        try {
            String nomeFile = "Verifica_tesi.txt";
            Runtime rt = Runtime.getRuntime() ;
            Process proc;
            proc = rt.exec("cmd /C start "+nomeFile);

            InputStream inp = proc .getInputStream() ;
            OutputStream outp = proc .getOutputStream ();
            InputStream errp = proc .getErrorStream();

        } catch(Exception e) {
            e.printStackTrace();
        }
      }
      if ( value == JFileChooser.CANCEL_OPTION )
      {
        System.out.println("Hai premuto il tasto annulla");
      }
      if ( value == JFileChooser.ERROR_OPTION )
      {
        System.out.println("ERRORE");
      }
      System.exit(0);
    }
    catch (Exception e)
    {
      e.printStackTrace();
      System.exit(1);
    }
  }

  private void findStyleNodes(Node startingNode)
  {
    NodeList childNodes = startingNode.getChildNodes();
    for ( int i = 0; i < childNodes.getLength(); i++)
    {
      Node actualNode = childNodes.item(i);
      if ( isStyleNode(actualNode) )
        styleNodes.addElement(actualNode);
      if ( actualNode.hasChildNodes() )
        findStyleNodes(actualNode);
    }
  }

  private boolean isStyleNode(Node node)
  {
    return node.getNodeName().equals("w:style");
  }

  private void createStyleObjects()
  {
    for ( int i = 0; i < styleNodes.size(); i++)
    {
      Node styleNode = (Node)styleNodes.elementAt(i);
      Style style = new Style();
      style.name = getAttributeValue(styleNode, "w:styleId");
      Node basedNode = getChildNode(styleNode, "w:basedOn");
      if ( basedNode != null )
        style.based = getAttributeValue(basedNode, "w:val");
      Node pPrNode = getChildNode(styleNode, "w:pPr");
      if ( pPrNode != null )
      {
        Node jcNode = getChildNode(pPrNode, "w:jc");
        if ( jcNode != null )
          style.jc = getAttributeValue(jcNode, "w:val");
      }
      Node paragraphNode = getChildNode(styleNode, "w:rPr");
      if ( paragraphNode != null )
      {
        Node fontNode = getChildNode(paragraphNode, "wx:font");
        if ( fontNode != null )
          style.font = getAttributeValue(fontNode, "wx:val");
        else
        {
          Node rfontNode = getChildNode(paragraphNode, "w:rFonts");
          if ( rfontNode != null )
            style.font = getAttributeValue(rfontNode, "w:cs");
        }
        Node sizeNode = getChildNode(paragraphNode, "w:sz");
        if ( sizeNode != null )
          style.size = getAttributeValue(sizeNode, "w:val");
        Node grassettoNode = getChildNode(paragraphNode, "w:b");
        if ( grassettoNode != null )
          style.grassetto = getAttributeValue(grassettoNode, "w:val");
        Node italicoNode = getChildNode(paragraphNode, "w:i");
        if ( italicoNode != null )
          style.italico = getAttributeValue(italicoNode, "w:val");
        Node sottolineatoNode = getChildNode(paragraphNode, "w:u");
        if ( sottolineatoNode != null )
          style.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
      }
      styleObjects.addElement(style);
    }
  }

  private String getAttributeValue(Node node, String attributeName)
  {
    NamedNodeMap attributes = node.getAttributes();
    if ( attributes == null )
      return "";
    Node item = attributes.getNamedItem(attributeName);
    if ( item == null )
      return "";
    return item.getNodeValue();
  }

  private Node getChildNode(Node node, String nodeName)
  {
    NodeList childNodes = node.getChildNodes();
    for ( int i = 0; i < childNodes.getLength(); i++)
    {
      Node childNode = childNodes.item(i);
      if ( childNode.getNodeName().equals(nodeName) )
        return childNode;
    }
    return null;
  }

  private void printStyles(PrintWriter pw)
  {
    for ( int i = 0; i < styleObjects.size(); i++)
    {
      Style style = (Style)styleObjects.elementAt(i);
      //System.out.println(style);
      pw.println(style);
    }
  }

  public static void main(String args[])
  {
    new ParserDOM();
  }

  class Style
  {
    String name;

    String based;

    String jc;

    String font;

    String size;

    String grassetto;

    String italico;

    String sottolineato;

    public String toString()
    {
      StringBuffer buffer = new StringBuffer();
      if ( name != null )
      {
        buffer.append("Stile: " + name + "\n");
        if ( based != null )
          buffer.append(" Basato su: " + based + "\n");
        if ( jc != null )
          buffer.append(" Jc: " + jc + "\n");
        if ( font != null )
          buffer.append(" Font: " + font + "\n");
        if ( size != null )
          buffer.append(" Dimensione: " + size + "\n");
        if ( grassetto != null )
          buffer.append(" Grassetto " + grassetto + "\n");
        if ( italico != null )
          buffer.append(" Italico " + italico + "\n");
        if ( sottolineato != null )
          buffer.append(" Sottolineato: " + sottolineato + "\n");
      }
      return buffer.toString();
    }
  }

  private void findBodyNodes(Node startingNode)
  {
    NodeList childNodes = startingNode.getChildNodes();
    for ( int i = 0; i < childNodes.getLength(); i++)
    {
      Node actualNode = childNodes.item(i);
      if ( isBodyNode(actualNode) )
        bodyNodes.addElement(actualNode);
      if ( actualNode.hasChildNodes() )
        findBodyNodes(actualNode);
    }
  }

  private boolean isBodyNode(Node node)
  {
    return node.getNodeName().equals("w:p");
  }

  private void createBodyObjects()
  {
    String stile = new String();
    String jc = new String();
    for ( int i = 0; i < bodyNodes.size(); i++)
    {
      Node bodyNode = (Node)bodyNodes.elementAt(i);
      stile = null;
      jc = null;
      Node paragraphNode = getChildNode(bodyNode, "w:pPr");
      if ( paragraphNode != null )
      {
        Node stileNode = getChildNode(paragraphNode, "w:pStyle");
        if ( stileNode != null )
          stile = getAttributeValue(stileNode, "w:val");
        Node jcNode = getChildNode(paragraphNode, "w:jc");
        if ( jcNode != null )
          jc = getAttributeValue(jcNode, "w:val");
      }
      NodeList pNode = getAllChildNode(bodyNode, "w:r");
      for ( int j = 0; j < pNode.getLength(); j++)
      {
        Body body = new Body();
        body.stile = stile;
        body.jc = jc;
        Node rNode = (Node)pNode.item(j);
        Node rPrNode = getChildNode(rNode, "w:rPr");
        if ( rPrNode != null )
        {
          Node rstileNode = getChildNode(rPrNode, "w:rStyle");
          if ( rstileNode != null )
            body.stile = getAttributeValue(rstileNode, "w:val");
          Node fontNode = getChildNode(rPrNode, "wx:font");
          if ( fontNode != null )
            body.font = getAttributeValue(fontNode, "wx:val");
          Node grassettoNode = getChildNode(rPrNode, "w:b");
          if ( grassettoNode != null )
            body.grassetto = getAttributeValue(grassettoNode, "w:val");
          Node italicoNode = getChildNode(rPrNode, "w:i");
          if ( italicoNode != null )
            body.italico = getAttributeValue(italicoNode, "w:val");
          Node sottolineatoNode = getChildNode(rPrNode, "w:u");
          if ( sottolineatoNode != null )
            body.sottolineato = getAttributeValue(sottolineatoNode, "w:val");
          Node sizeNode = getChildNode(rPrNode, "w:sz");
          if ( sizeNode != null )
            body.size = getAttributeValue(sizeNode, "w:val");
        }
        Node pictNode = getChildNode(rNode, "w:pict");
        if ( pictNode != null )
        {
          Node shapeNode = getChildNode(pictNode, "v:shape");
          if ( shapeNode != null )
          {
            Node imagedataNode = getChildNode(shapeNode, "v:imagedata");
            if ( imagedataNode != null )
            {
              body.titolopict = getAttributeValue(imagedataNode, "o:title");
              body.formatopict = getAttributeValue(imagedataNode, "src");
            }
          }
        }
        Node wtNode = getChildNode(rNode, "w:t");
        if ( wtNode != null )
        {
          Node testoNode = getChildNode(wtNode, "#text");
          if ( testoNode != null )
            body.testo = testoNode.getNodeValue();
        }
        bodyObjects.addElement(body);
      }
    }
  }

  private void printBody(PrintWriter pw)
  {
    for ( int i = 0; i < bodyObjects.size(); i++)
    {
      Body body = (Body)bodyObjects.elementAt(i);
      //System.out.println(body);
      pw.println(body);
    }
  }

  private void Based_On()
  {
    for ( int i = 0; i < styleObjects.size(); i++)
    {
      Style style = (Style)styleObjects.elementAt(i);
      if ( style.size == null )
      {
        if ( style.based != null )
        {
          String Based = style.based;
          for ( int j = 0; j < styleObjects.size(); j++)
          {
            Style style1 = (Style)styleObjects.elementAt(j);
            String name = style1.name;
            if ( Based.equals(name) )
              style.size = style1.size;
          }
        }
      }
    }
  }

  private void controlli()
  {
    for ( int i = 0; i < bodyObjects.size(); i++)
    {
      Body body = (Body)bodyObjects.elementAt(i);
      if ( body.testo != null )
      {
        if ( body.testo.equalsIgnoreCase("Alma Mater Studiorum - Università degli Studi di Bologna") || body.testo.equalsIgnoreCase("Sede di Cesena") || 
        body.testo.equalsIgnoreCase("FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI") || body.testo.equalsIgnoreCase("Corso di Studi in Scienze dell’Informazione") )
          System.out.println("OK Intestazione iniziale");
        if ( body.testo.equalsIgnoreCase("Tesi di Laurea in:") || body.testo.equalsIgnoreCase("Tesi di Laurea in") )
          System.out.println("OK materia");
        if ( body.testo.equalsIgnoreCase("relatore:") || body.testo.equalsIgnoreCase("relatore") )
          System.out.println("OK relatore");
        if ( body.testo.equalsIgnoreCase("presentata da:") || body.testo.equalsIgnoreCase("presentata da") )
          System.out.println("OK presentata");
        if ( body.testo.equalsIgnoreCase("corelaotre") || body.testo.equalsIgnoreCase("correlatore") || body.testo.equalsIgnoreCase("corelaotre:") || body.testo.equalsIgnoreCase("correlatore:") )
          System.out.println("OK correlatore");
        if ( body.testo.equalsIgnoreCase("sessione i") || body.testo.equalsIgnoreCase("sessione 1") )
          System.out.println("OK Prima sessione");
        if ( body.testo.equalsIgnoreCase("sessione ii") || body.testo.equalsIgnoreCase("sessione 2") )
          System.out.println("OK Seconda sessione");
        if ( body.testo.equalsIgnoreCase("sessione iii") || body.testo.equalsIgnoreCase("sessione 3") )
          System.out.println("OK Terza sessione");
        if ( body.testo.equalsIgnoreCase("indice") || body.testo.equalsIgnoreCase("ndice") )
          System.out.println("OK INDICE");
        if ( body.testo.equalsIgnoreCase("introduzione") || body.testo.equalsIgnoreCase("ntroduzione") )
          System.out.println("OK INTRODUZIONE");
        if ( body.testo.equalsIgnoreCase("conclusioni") || body.testo.equalsIgnoreCase("onclusioni") || body.testo.equalsIgnoreCase("conclusione") || body.testo.equalsIgnoreCase("onclusione") )
          System.out.println("OK CONCLUSIONI");
        if ( body.testo.equalsIgnoreCase("bibliografia") || body.testo.equalsIgnoreCase("ibliografia") || body.testo.equalsIgnoreCase("bibbliografia") || body.testo.equalsIgnoreCase("ibbliografia") )
          System.out.println("OK BIBLIOGRAFIA");
        if ( body.jc == null && body.font == null && body.size == null )
        {
          ArrayList buffer1 = stili();
          for ( int j = 0; j < buffer1.size(); j++)
          {
            if ( body.stile.equals(buffer1.get(j)) )
              System.out.println("Testo rispetta vincoli");
          }
        }
        else
        {
          if ( body.font != null )
            System.out.println("Font diverso: " + body.font + " dimensione diversa: " + body.size + " contiene: " + body.testo);
        }
      }
    }
    System.out.println("WARNING.....");
  }

  class Body
  {
    String stile;

    String jc;

    String font;

    String grassetto;

    String italico;

    String sottolineato;

    String size;

    String testo;

    String titolopict;

    String formatopict;

    public String toString()
    {
      StringBuffer buffer = new StringBuffer();
      if ( stile != null )
        buffer.append("Stile body: " + stile + "\n");
      if ( jc != null )
        buffer.append(" Jc body: " + jc + "\n");
      if ( font != null )
        buffer.append(" Font body: " + font + "\n");
      if ( size != null )
        buffer.append(" Dimensione body: " + size + "\n");
      if ( grassetto != null )
        buffer.append(" Grassetto body " + grassetto + "\n");
      if ( italico != null )
        buffer.append(" Italico body " + italico + "\n");
      if ( sottolineato != null )
        buffer.append(" Sottolineato body: " + sottolineato + "\n");
      if ( testo != null )
        buffer.append(" Testo body: " + testo + "\n");
      if ( titolopict != null )
        buffer.append(" Nome immagine body: " + titolopict + "\n");
      if ( formatopict != null )
        buffer.append(" Formato immagine body: " + formatopict + "\n");
      return buffer.toString();
    }
  }

  private NodeList getAllChildNode(Node node, String nodeName)
  {
    ArrayNodeList arrNodeList = new ArrayNodeList();
    NodeList childNodes = node.getChildNodes();
    for ( int i = 0; i < childNodes.getLength(); i++)
    {
      Node childNode = childNodes.item(i);
      if ( childNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && childNode.getNodeName().equals(nodeName) )
      {
        arrNodeList.add(childNode);
      }
    }
    return arrNodeList;
  }

  class ArrayNodeList implements NodeList
  {
    private ArrayList nodesArray = new ArrayList();

    public void add(Node n)
    {
      nodesArray.add(n);
    }

    public int getLength()
    {
      return nodesArray.size();
    }

    public Node item(int index)
    {
      try
      {
        return (Node)nodesArray.get(index);
      }
      catch (IndexOutOfBoundsException e)
      {
        return null;
      }
    }
  }

  private ArrayList stili()
  {
    String style1 = new String();
    ArrayList buffer1 = new ArrayList();
    for ( int i = 0; i < styleObjects.size(); i++)
    {
      Style style = (Style)styleObjects.elementAt(i);
      if ( style.jc != null && style.jc.equals("both") )
        if ( style.font != null && style.font.equals("Times New Roman") )
          if ( style.size != null )
            if ( style.size.equals("24") || style.size.equals("26") )
              if ( style.grassetto == null && style.italico == null && style.sottolineato == null )
              {
                style1 = style.name;
                buffer1.add(style1);
              }
    }
    return buffer1;
  }
}
Funziona correttamente da una Dos o tramite un editor Java, però io vorrei renderlo eseguibile in internet?
Come devo modificarlo per fare ciò???
Devo creare un JSP con un pulsante che quando lo spingo faccia il medesimo lavoro di questo programma...è possibile???

Codice:
import javax.swing.filechooser.*;

public class XMLFilter extends FileFilter  {
  public String getDescription() {
    return "file xml";
  }

  public boolean accept(java.io.File file) {
    return file.isDirectory() || file.getName().endsWith(".xml");
  }
}
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB.
xxdavide84xx è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 16:31   #2
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Se non ricordo male credo che sia bidibi bodibi bu
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 16:44   #3
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da isAlreadyInUse Guarda i messaggi
Se non ricordo male credo che sia bidibi bodibi bu
Ricordi male, era abbracadabbra
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 16:46   #4
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Giusto è che sono stato a scuola da Silvan e come maestro nn è un gran che
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 16:54   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da isAlreadyInUse Guarda i messaggi
Giusto è che sono stato a scuola da Silvan e come maestro nn è un gran che
Babbano

[FINE OT]

@xxdavide84xx: su questo aspetto io non so aiutarti, non so per isAlreadyInUse, però come vedi ha sbagliato formula...
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 17:13   #6
xxdavide84xx
Member
 
L'Avatar di xxdavide84xx
 
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
Sarebbe possibile usare Java Web Start da quel che ho capito, ma non so bene come configurare il tutto!!!
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB.
xxdavide84xx è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 17:16   #7
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
C'è sempre il Ping Pong
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 17:24   #8
xxdavide84xx
Member
 
L'Avatar di xxdavide84xx
 
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
Quote:
Originariamente inviato da isAlreadyInUse Guarda i messaggi
C'è sempre il Ping Pong
Grazie delle battute, ma preferisco risposte SERIE, se possibile....
so che faccio domande a volte per esperti di Java poco intelligenti,ma ho assolutamente bisogno di una mano.,..
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB.
xxdavide84xx è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 21:12   #9
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
no, è che isAlreadyInUse si dimentica che non è stato l'unico programmatore ad aver imparato dalle basi, pensa che nasciamo tutti imparati..... (vedi altri suoi commenti in altri thread).

Tornando IT mi sa che fai un po troppa confusione tra vari aspetti. Per esempio fai il caricamento e salvataggio dei files direttamente nel costruttore del tuo oggettone, dovresti porre piu attenzione alla modularizzazione del tuo programma suddividendolo in vari blocchi distinti per funzione e senza intradipendenze tra loro. Poi se il front-end lo fai con SWING o Servlet/JSP cambia solo un aspetto della tua applicazione senza dover mettere troppo le mani su codice già scritto (codice chiuso alle modifiche e aperto alle estensioni)
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB

Ultima modifica di morskott : 23-01-2008 alle 21:19.
morskott è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
La previsione di CATL: barche elettriche...
Stangata in arrivo: PC e notebook coster...
Lian Li si è inventata il primo a...
Amazon in raptus sconti: ogni 24 ore nov...
44 idee regalo sotto i 50€: con le offer...
Super Sconti Amazon Haul: ribassi fino a...
Cloudflare ha bloccato 416 miliardi di r...
Prezzo mai visto: POCO F7 12/256GB in su...
Svuotano tutto: super sconto su due scop...
Warner-Netflix, l'accordo riaccende le s...
6 robot al prezzo del Black Friday e non...
Russia, i cani randagi diventano hotspot...
Ogni giorno sconti nuovi: oggi iPhone 17...
Non solo Mac: anche alcuni futuri iPhone...
La costruzione del telescopio spaziale N...
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: 12:23.


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