Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [VB6] Instr

  1. #1
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653

    [VB6] Instr

    buongiorno ragazzi, allora il problema è questo, sto cercando di leggere da un file html degli ip x metterli su una txt/list/db , tutto funziona bene quando ho un ip x riga...

    codice:
    .
    ..
    tmpip="123.123.123.123"
    Open App.Path & "\miofile.html" For Input As numfile
                Do While Not EOF(numfile)
                    Input #numfile, riga
                    pos = InStr(1, riga, tmpip)
                    If pos <> 0 Then 
                    lavora()
    ..
    .
    il problema si pone quando gli ip x riga da identificare aumentano (possono essere 2-4-7 )
    secondo voi è meglio riscrivere il file html in modo ke gli ip ke abbia un ip x riga oppure gestirli modificando il mio codice ?
    Qualkuno ha gia' avuto questo problemino ?

  2. #2
    Forse dovresti postare un esempio del file HTML, altrimenti risulta difficile aiutarti! Ciao
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    hai ragione , fai conto ke il file html sia una cosa di questo tipo:

    codice:
    <html>
    <body>
    <td align=center>192.168.2.6</td>
    <td align=center>2089</td>
    <td align=center>151.99.125.2</td>
    <td align=center>53</td>
    <td align=center>UDP</td>
    </tr>
    <tr><td align=center>4</td>
    <td align=center>192.168.2.6</td>
    <td align=center>2099</td>
    <td align=center>151.99.125.2</td>
    <td align=center>53</td>
    <td align=center>UDP</td>
    </tr>
    <tr><td align=center>5</td>
    <td align=center>192.168.2.6</td>
    <td align=center>2100</td>
    <td align=center>62.94.15.39</td>
    <td align=center>80</td>
    <td align=center>HTTP</td>
    </tr>
    <tr><td align=center>6</td>
    <td align=center>192.168.2.5</td>
    <td align=center>1288</td>
    <td align=center>207.46.107.136</td>
    </body>
    </html>
    ovviamente devi tenere conto ke a all'interno del body , i vari <td> saranno tutti su una riga, qui vengono formattati automaticamente(nn rende l'idea), spero di essermi spiegato, ciao.

  4. #4
    Accedere al codice di una pagina HTML come se si trattasse di un normale file di testo è sempre possibile, ma estrapolare informazioni in questo modo è veramente complicato a meno che la pagina in questione non abbia un codice HTML estremamente pulito e dotato di una struttura non mutevole nel tempo.

    Ti consiglio un approccio completamente diverso utilizzando la libreria "Microsoft HTML Object Library", che permette di accedere al codice della pagina HTML attraverso oggetti e collection.

    L'esempio che ti riporto può essere facilmente adattato al tuo progetto, l'unica cosa che ti consiglio è quella di riscrivere se puoi la pagina HTML spostando tutta la formattazione in un file CSS esterno o in un blocco <style></style> all'interno della pagina.

    Pagina HTML di partenza:
    codice:
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    		<title>Titolo pagina</title>
    		<style type="text/css">
    			<!--
    			td {
    				font-size: 9pt;
    				text-align: center;
    			}
    			-->
    		</style>
    	</head>
    	
    	<body>
    		<table id="datatable">
    			<tr>
    				<td>1</td>
    				<td>333</td>
    				<td>4656</td>
    				<td>45333</td>
    				<td>4773</td>
    			</tr>
    			<tr>
    				<td>2</td>
    				<td>556</td>
    				<td>47474</td>
    				<td>858</td>
    				<td>24636</td>
    			</tr>
    			<tr>
    				<td>3</td>
    				<td>73577</td>
    				<td>84888</td>
    				<td>22255</td>
    				<td>225</td>
    			</tr>
    		</table>
    	</body>
    </html>
    Ecco ora un breve esempio che mostra come utilizzare la libreria "Microsoft HTML Object Library" in congiunzione con il controllo "WebBrowser" (qui chiamato WB).

    codice:
        Dim d As IHTMLDocument3
        Dim tbl As IHTMLTable
        Dim row As IHTMLTableRow
        Dim el As IHTMLElement
        
        'carica la pagina
        WB.navigate "http://www.xxyyzz123.it/pagina.htm"
        
        'attende il caricamento...
        Do While WB.Busy
            DoEvents
        Loop
        
        'oggetto documento
        Set d = WB.document
        
        'oggetto table
        Set tbl = d.getElementById("datatable")
        
        'per ogni riga della tabella...
        For Each row In tbl.rows
            'per ogni cella della riga...
            For Each el In row.cells
                '... stampa il contenuto nella finestra immediata
                Debug.Print el.innerText,
            Next
            'manda a capo la riga stampata
            Debug.Print
        Next
    Ciao
    Chi non cerca trova.

  5. #5
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    grazie tas x i tuoi suggerimenti , ma purtroppo nn ho accesso completo al file html, visto ke viene generato da un router ed'è mooolto mutevole cmq forse sono riuscito ad ingabbiare i primi 5 valori ke sono presenti su ogni riga x poi memorizzarli, unica kosa dove x ora sono blokkato è la formattazione del'ip, cioe';
    mettiamo ke io debba catturare sempre i primi 15 caratteri x l'indirizzo ip, se il mio ip è + piccolo di 15 car. come puo' succedere, il mio programma catturera' anche parte dell'html ke nn mi interessa, come lo filtro =?
    192.168.1.1<bla mentre andrebbe bene se è 192.192.168.168
    x ora

  6. #6
    Avevo capito dal tuo primo post che potevi anche cambiare il codice HTML se necessario...

    In ogni caso la procedura che ti ho passato è riutilizzabile lo stesso, per capire come muoversi basterebbe analizzare la pagina HTML in questione... se vuoi zippala e mandamela in pvt, ciao
    Chi non cerca trova.

  7. #7
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    hai ragione , diciamo ke potrei ancke riscriverla ma x ora penso di aver risolto il primo problema, ora c'è il secondo ... ke mi dici , ti è gia' capitato ?
    consigli su come risolverlo , nn penso sia tanto difficile

  8. #8
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    secondo problema risolto, a ki potesse interessare ..
    esempio.
    codice:
    iplen = InStr(1, tempip, "<")
    tempip = Mid(riga, Val(pos) + 91, iplen - 1)

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.