Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: ricorrenze in txt

  1. #1
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483

    ricorrenze in txt

    come faccio a mettere in una var solo una parte del testo contenuto in un file

    mi spiego meglio forse con un esempio:
    -ho un testo contenuto in un variabile stringa dove ci sono + ricorrenze del tag <a href....> vorrei prendere questo tag completo
    e riscriverlo in ordine senza l'altro testo ma solo <a href>
    alla fine dovrei avere una cosa del genere:

    <a href='pippo'>
    <a href='pluto'>
    <a href='minni'>
    <a href='paperino'>
    <a href='etc'>
    <a href='etc'>
    <a href='etc'>
    <a href='etc'>
    ok ?

    adesso non riesco a capire come faccio a ciclare il testo per trovare le ricorrenze di <a href> e passare alla successiva nel senso che la prima la trovo e la estrapolo ma poi come faccio a passare alla seconda e via dicendo??

    grazie a tutti


  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Prova così:
    codice:
    Const FileName = "C:\File.txt"
    Dim Riga As String
    Dim TestoFinale As String
    
    Open FileName For Input As #1
      Do Until EOF(1)
        Input #1, Riga
        If InStr(1, Riga, "<") <> 0 And InStr(1, Riga, ">") <> 0 Then
          TestoFinale = TestoFinale & Mid(Riga, InStr(1, Riga, "<"), InStr(1, Riga, ">") - InStr(1, Riga, "<") + 1) & vbCrLf
        End If
      Loop
    Close #1

  3. #3
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    grazie sei un mito!!!
    non riuscivo bene a focalizzare dove dovevo fare il controllo
    se nella lettura o successivamente
    lo facevo successivamente ma non mi riusciva
    così dovrebbe funziare


    grazie ancora

  4. #4
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Prego, ma è stata anche chiara la richiesta.

  5. #5
    io ti consiglio di usare le espressioni regolari...

  6. #6
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    mi fai un esempio riky

  7. #7
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    @Mabi Il tuo codice funzia ma manca una cosa:

    mi prene solo la prima riga
    ---------------
    Es. Di testo
    ---------------
    codice:
    <?xml version=1.0 encoding=UTF-16?><table cellspacing=0 cellpadding=2 width=602 border=0 align=left><tr valign=top><td width=3%></td><td width=312 class=maincolor><table width=100% border=0 cellspacing=0 cellpadding=0><tr><td><font class=bianco>Oggetto</font></td></tr><tr><td align=center height=2></td></tr><tr><td align=center height=12></td></tr></table></td><td width=84 class=maincolor><table width=100% border=0 cellspacing=0 cellpadding=0><tr><td align=center><font class=bianco>Luogo</font></td></tr><tr><td align=center height=2></td></tr><tr><td align=center><table width=26 border=0 cellspacing=0 cellpadding=0><tr><td align=center width=50%><img src=images/dot.gif />
    <a class=testo href=template2.asp?page=/searchView1&amp;idad=5933667&amp;idAgency=688325&amp;Type=1>
    Smart Passion2001grigio scuro/argentofull optionalabsairbag...</a></td><td class=highcolor_1 width=84 align=middle><font class=testo></font></td><td class=highcolor_1 width=85 align=middle><font class=testo>€ 7950class=highcolor_1 width=69 align=middle /><td class=highcolor_1 width=70 align=middle><font class=testo>11/12/2003</font></td></tr><tr valign=top><td width=3% valign=top align=center /><td width=312>
    <a class=titolino href=template2.asp?page=/searchView1&amp;idad=5923104&amp;idAgency=138014&amp;Type=1>Volvo V40 2.0 Optima1997argentokm.90.000full optionalabsai...</a></td><td width=84 align=middle><font class=titolino></font></td><td width=85 align=middle><font class=titolino>€ 7.000</font></td><td width=69 align=middle><img src=/photoAds/20031209/2/278662_s.jpg border=0 height=50 /></td><td width=70 align=middle><font class=titolino>10/12/2003</font></td></tr><tr valign=top><td width=3% valign=top align=center /><td class=stepColor width=312>.....
    da questo testo devo prendere solo quello in grassetto
    come puoi vedere il testo continua ed all'incirca dovrei estrarre un 80 di idad con il tuo codice mi da solo la prima riga

    e va a capo e stop si ferma ma io lo voglio far continuare come fò!!!!

  8. #8
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    Grazie per il Vs Aiuto ho risolto da solo:
    Soluzione

    codice:
        Testo = Mid(Riga, 1)
        For N = 1 To Len(Riga)
            If InStr(1, Testo, "idad=") <> 0 Then
                Start = InStr(1, Testo, "idad=")
                Testo = Mid(Testo, Start)
                Stop1 = InStr(1, Testo, "&amp;") - 1
                TestoFinale = TestoFinale & Mid(Testo, 1, Stop1) & vbCrLf
                Tot = Tot + Start + Stop1
            End If
            If InStr(1, Testo, "idad=") = 0 Then Exit For
            N = Tot + 1
            Testo = Mid(Testo, Stop1)
        Next

  9. #9
    anche sa hai risolto ti passo il codice per le espressioni regolari....

    codice:
    r.MultiLine = True
    r.Global = True
    r.Pattern = "&idad=[^&]*"
    List1.Clear
    Set a = r.Execute(Text1)
    For Each b In a
        List1.AddItem b
    Next
    Dove r è RegExp e in text1 ci sarà il testo da parserare

    secondo me le espressioni regolari sono più comode, cmq vedi tu

  10. #10
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    ...anche se è tardi...
    l'avevo fatto col do:
    codice:
    Const FileName = "C:\File.txt"
    Dim Riga As String
    Dim TestoFinale As String
    
    Open FileName For Input As #1
      Do Until EOF(1)
        Input #1, Riga
        Do Until InStr(1, Riga, "idad=") = 0
          If InStr(InStr(1, Riga, "idad="), Riga, "&") <> 0 Then
            TestoFinale = TestoFinale & Mid(Riga, InStr(1, Riga, "idad="), InStr(InStr(1, Riga, "idad="), Riga, "&") - InStr(1, Riga, "idad=") + 1) & vbCrLf
          End If
          Riga = Right(Riga, Len(Riga) - InStr(InStr(1, Riga, "idad="), Riga, "&"))
        Loop
      Loop
    Close #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.