Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34

Discussione: controllo if...

  1. #1
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515

    controllo if...

    ciao a tutti!!!!!

    ho creato un programma dove apro i file pdf dal database....il file pdf lo apro con "PDFFile"

    ora vorrei aprire altri tipi di file "txt" "rtf"...ma li apro con JEditorPane

    per aprire il file dal database scrivo:

    QueryResult temp = new QueryResult(rs.getInt("id"),rs.getString("nome"), rs.getString("testo"));

    "File file = new File(temp.testo);"

    come faccio a mettere un controllo sul tipo di file prelevato dal database???

    vi faccio un esempio del controllo che vorrei fare...

    if (file= ".pdf") {
    PagePanel.setVisible(true);
    JeditorPane.setVisigle(false);
    ...tutta la procedura per aprire il file "pdf"
    }

    if (file= ".rtf") {
    PagePanel.setVisible(false);
    JeditorPane.setVisigle(true);
    ...tutta la procedura per aprire il file "rtf"
    }

    if (file= ".txt") {
    PagePanel.setVisible(false);
    JeditorPane.setVisigle(true);
    ...tutta la procedura per aprire il file "txt"
    }

    spero di essere stato chiaro....

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    temp.testo che cosa restituisce? La stringa con il nome del file e l'estensione?

    Comunque non ti conviene utilizzare dei singoli if in quel modo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    puoi (in modo molto semplice) basarti sulle estensioni dei nomi, quindi quando hai il nome del file, fai la substring dalla posizione del . in poi e vedi dove ricadi come estensione.

    Non è un controllo efficace: ci sono una marea di txt a cui IO non metto volutamente nessun .txt perché sarebbe superfluo, per questi l'unico modo di sapere il tipo è andare ad aprirlo e leggere una certa sequenza di byte (cercando di interpretarla a seconda dei vari casi).

    Inoltre, puoi prendere in giro il sistema rinominando il file cambiando l'estensione, in questo caso ancora non sai di che tipo è a parte il parse.

    Quindi riassumendo per te l'unica opzione possibile è la prima (ovvero prendi estensione) e rifiutare tutti i file che non rientrano nei tuoi canoni (perché non sai interpretarli)
    RTFM Read That F*** Manual!!!

  4. #4
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ciao ragazzi....ora ho letto le vostre risposte...

    cmq temp.testo restituisce una stringa...per essere precisi una stringa inclusa la dir:

    esempio: C://esempio/testo.txt

    l'if che ho inserito è un esempio banale per far capire cosa vorrei ottenere....

    in poche parole vorrei ottenere tutta la stringa senza il ".".....

    come faccio???

    ad esempio se ho la stringa C://esempio/testo.pdf

    vorrei ottenere la stringa "C://esempio/testo"

    in modo tale da gestire meglio il controllo delle estensioni.....

  5. #5
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    anzi.....tagliando la testa al toro.....

    si può prendere solo l'estensione dopo il punto????

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    codice:
    str.substring(str.lastIndexOf('.')+1)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da paul78
    anzi.....tagliando la testa al toro.....

    si può prendere solo l'estensione dopo il punto????
    ancora non leggi la documentazione, nonostante ti abbiamo detto di farlo non so quante volte.
    Se ti fossi degnato una volta di leggere la documentazione di substring, sapresti che restituisce la stringa a partire dall'indice specificato come parametro, quindi individua il "." nella stringa, parti dalla posizione successiva.

    Ancora una volta dimostri di non leggere quello che ti si dice, perché ti ho anche avvisato che in realtà non è un sistema sicuro perché si può prendere in giro il sistema. L'unica sicurezza sarebbe leggere i primi byte del file e da quelli capire cosa hai, anche se non c'è un metodo univoco generale per comprendere che tipo di dato hai partendo dai byte
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    grazie mille patrik!!!!

    valia....hai un brutto parere su si me...peccato!!!!

    cmq vi ringrazio moltissimo!!!!

    ora posso proseguire con il controllo.....

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da paul78
    grazie mille patrik!!!!

    valia....hai un brutto parere su si me...peccato!!!!

    cmq vi ringrazio moltissimo!!!!

    ora posso proseguire con il controllo.....
    dimostrami il contrario, perché in realtà queste sono cose che fanno parte dell'ABC e non sto parlando di una libreria introvabile, ma di String!!!
    RTFM Read That F*** Manual!!!

  10. #10
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ragazzi!!!!

    quando metto un controllo non funziona ora vi metto il cod:

    codice:
    while (rs.next()) { 	   					    
    QueryResult temp = new QueryResult(rs.getInt("id"),rs.getString("nome"), rs.getString("testo"));						
    String substring = rs.getString("testo").substring(rs.getString("testo").lastIndexOf('.')+1);
    
    if (substring == "pdf") {
    
    					
    pagePanel.setVisible(true);
    editor.setVisible(false);
    textArea.setVisible(false);
    System.out.println(substring);
    File file = new File(temp.testo);
    RandomAccessFile raf = new RandomAccessFile(file, "r");
    FileChannel channel = raf.getChannel();
     ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
    pdffile = new PDFFile(buf);
    tot_pages = pdffile.getNumPages();		
    			        
    try {
    prevB.setEnabled(false);
    showPage(pg = 1);		            
    }
    catch (Exception e) {
    e.printStackTrace();
    }		        
    
    					totalTimeLabel.setText(secondToTime((int)playerCTL.getTotalTimeSecond()));
    }
    come mai????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.