Problemi con replace



  • Problemi con replace
    di Angelus (utente non iscritto) data: 05/01/2011

    Salve chiedo il vostro aiuto per eliminare gli spazzi vuoti e righe intere vuote dato che sto usando una matrice per eliminare più parole,quindi di conseguenza quello che mi serve è sparpagliato sulla text2.text
    la matrice sta sul modulo ringrazio anticipatamente sicuro di un vostro aiuto
     
    Dim Stringa As String
    Dim modifica As String
    
    
    
    Private Sub Command1_Click()
    
    Stringa = Text1.Text
    
    For i = 1 To 6
    modifica = Replace(Stringa, p(i), "")
    Stringa = modifica
    Next
    
    Text2.Text = Trim$(modifica)
    End Sub



  • di Angelus (utente non iscritto) data: 05/01/2011

    Sono sempre io volevo esporvi il problema dall'inizio siccome gioco a holdem e ho trovato il file dove mi registra le informazioni sulle mani giocate, volevo estrarre questi dati per farmi uno storico delle vincite e perdite elaborandole con vb avete consigli su come estrappolare queste informazioni?
     
    - 
    - 
      real 
      Holdem SL 
      Toronto, 537486931 
      N/D 
      77 
      2011-01-03 11:32:42 
      USD 
      Ursus 
      19,121 
      17,621 
      0 
      0 
      3.40 
      Toronto 
      3 
      $1+$0.20 
      $1.20 
      3.40 
      $2 
      
    - 
    - 
      2011-01-03 11:32:42 
    - 
       
       
       
       
       
       
       
       
       
       
      
      
    - 
       
       
      
    - 
      X X 
       
      X X 
       
      X X 
       
      X X 
       
      X X 
       
      X X 
       
      X X 
       
      X X 
       
      X X 
       
      HK D10 
       
      
    - 
      H6 C5 C3 
       
       
       
       
       
      
    - 
      C9 
       
       
      
    - 
      CA 
       
       
       
      
      
    



  • di Ricky53 (utente non iscritto) data: 05/01/2011

    Ciao,
    ma quale risultato vuoi ottenere oltre che eliminare le righe vuote e gli spazi ???

    se descrivi cosa ti occorre effettivamente senza pensare a come farlo (ci penseremo dopo aver capito le esigenze) sarà più facile, per noi, aiutarti



  • di Angelus (utente non iscritto) data: 05/01/2011

    Ammetto che per la fretta non ho controllato come è venuto il post il codice da elaborare e pieno di > < " " quindi postandolo il sito lo ha modificato ora provo a metterlo qui

    -
    -
    real
    holdem sl
    toronto, 537486931
    n/d
    77
    2011-01-03 11:32:42
    usd
    aangelus1
    19,121
    17,621
    0
    0
    3.40
    toronto
    3
    $1+$0.20
    $1.20
    3.40
    $2

    -
    -
    2011-01-03 11:32:42
    -












    -



    -
    x x

    x x

    x x

    x x

    x x

    x x

    x x

    x x

    x x

    hk d10


    -
    h6 c5 c3






    -
    c9



    -
    ca






    da qui vorrei estrarre le informazioni per analizzare la giocata comunque si collega alle richiesta precedente grazie



  • di Angelus (utente non iscritto) data: 05/01/2011

    Lo ha modificato ancora comunque provo ad usare l'aplicazione vb che ho progettatto per eliminare i caratteri che creano problemi ogni spazio vuoto era riempito di > < " "

    e' capitata una cosa strana quando ho fatto sostituire il carattere " con replace lo correggeva con""""e invece di crearmi lo spazio vuoto lo ha eliminato,comunque il codice è questo mi servirebbe un consiglio su come procedere all'estrappolazione dei dati per por elaborare le mani giocate premetto che questa è una sola mano però che si ripetono cambiano le informazioni della mano giocata ora racchiuderò tra parentisi i dati che dovrei estrappolare

    ideeeeeee!!!!
     
    - session sessioncode=4325496461
    - general
      modereal/mode 
      gametypeHoldem SL/gametype 
      tablenameToronto, 537486931/tablename 
      durationN/D/duration 
      gamecount77/gamecount 
      startdate2011-01-03 11:32:42/startdate 
      currencyUSD/currency 
      nicknameAangelus1/nickname 
      bets19,121/bets 
      wins17,621/wins 
      chipsin0/chipsin 
      chipsout0/chipsout 
      ipoints3.40/ipoints 
      tournamentnameToronto/tournamentname 
      place3/place 
      buyin$1+$0.20/buyin 
      totalbuyin$1.20/totalbuyin 
      ipoints3.40/ipoints 
      win$2/win 
      /general
    - game gamecode=3379998496
    - general
      startdate2011-01-03 11:32:42/startdate 
    - players
    
     player seat=1 name=ddsjdfsj chips=1,500 dealer=1 win=0 bet=0 / 
        player seat=2 name=bobretto chips=1,500 dealer=0 win=0 bet=10 / 
      player seat=3 name=xVishenkaX chips=1,500 dealer=0 win=0 bet=20 / 
      player seat=4 name=aimee2003 chips=1,500 dealer=0 win=0 bet=40 / 
      player seat=5 name=bobbymarli18 chips=1,500 dealer=0 win=0 bet=0 / 
      player seat=6 name=Litch88 chips=1,500 dealer=0 win=0 bet=0 / 
      player seat=7 name=STASbd chips=1,500 dealer=0 win=0 bet=0 / 
      player seat=8 name=mrsandman999 chips=1,500 dealer=0 win=0 bet=0 / 
      player seat=9 name=OMGChuckNorrisss chips=1,500 dealer=0 win=0 bet=0 / 
    
     ((((((  player seat=10 name=Aangelus1 chips=1,500 dealer=0 win=130 bet=60 /   )))))))))))
     
     /players
      /general
    - round no=0
      action no=1 player=bobretto type=1 sum=10 cards=[cards] / 
      action no=2 player=xVishenkaX type=2 sum=20 cards=[cards] /  
      /round
    - round no=1
     ((((((((( cards type=Pocket player=ddsjdfsjX X/cards 
      action no=10 player=ddsjdfsj type=0 sum=0 cards= / 
      cards type=Pocket player=bobrettoX X/cards 
      action no=11 player=bobretto type=0 sum=0 cards= / 
      cards type=Pocket player=xVishenkaXX X/cards 
      action no=12 player=xVishenkaX type=4 sum=0 cards= / 
      cards type=Pocket player=aimee2003X X/cards 
      action no=3 player=aimee2003 type=3 sum=20 cards= / 
      cards type=Pocket player=bobbymarli18X X/cards 
      action no=4 player=bobbymarli18 type=0 sum=0 cards= / 
      cards type=Pocket player=Litch88X X/cards 
      action no=5 player=Litch88 type=0 sum=0 cards= / 
      cards type=Pocket player=STASbdX X/cards 
      action no=6 player=STASbd type=0 sum=0 cards= / 
      cards type=Pocket player=mrsandman999X X/cards 
      action no=7 player=mrsandman999 type=0 sum=0 cards= / 
      cards type=Pocket player=OMGChuckNorrisssX X/cards 
      action no=8 player=OMGChuckNorrisss type=0 sum=0 cards= / 
    
    (((((( cards type=Pocket player=Aangelus1HK D10/cards 
      action no=9 player=Aangelus1 type=3 sum=20 cards= /  ))))))))))))
    
      /round
    - round no=2
    
     (((( cards type=Flop player=H6 C5 C3/cards )))
     
     action no=13 player=xVishenkaX type=4 sum=0 cards= / 
      action no=16 player=xVishenkaX type=0 sum=0 cards= / 
      action no=14 player=aimee2003 type=4 sum=0 cards= / 
      action no=17 player=aimee2003 type=3 sum=20 cards= / 
    
     ((((( action no=15 player=Aangelus1 type=5 sum=20 cards= /  ))))))))))
    
      /round
    - round no=3
    
     (((((( cards type=Turn player=C9/cards )))))
    
      action no=18 player=aimee2003 type=4 sum=0 cards= / 
    
     ((((((( action no=19 player=Aangelus1 type=4 sum=0 cards= /  )))))))
     
     /round
    - round no=4
    
     (((((( cards type=River player=CA/cards ))))))
      
    action no=20 player=aimee2003 type=4 sum=0 cards= / 
      action no=22 player=aimee2003 type=0 sum=0 cards= / 
      action no=21 player=Aangelus1 type=5 sum=20 cards= / 
      /round
      /game
    
    



  • di Mik (utente non iscritto) data: 06/01/2011

    Ciao

    vorrei aiutarti se riusci a capire bene alcuni procedimenti che stai usando!
    1. quei dati li estrapoli direttamente dal file in questione con l'istruzione:---??
    "open nomefile for input as...."
    oppure copi/incolli in un folgio/cella di excel o word?
    se trattasi del primo caso, meglio perchè estrae per righe intere, quindi basta metterci la funzione:
    instr(star,stringa da cui cercare,stringa cercata) se >0 allora estrapola tutta la riga che interessa!!!

    2. per ripulire i caratteri " (virgolette) conviene specificare il codice ascii equivalente a ' asc(34) ', altrimenti a livello cosice può essere confuso con i delimitatori del codice stesso



  • di Angelus (utente non iscritto) data: 06/01/2011

    Innanzitutto vorrei ringraziarti della tua risposta.

    passiamo al confronto di idee se prendessi direttamente le righe originali mi creerebbero problemi i vari caratteri come > < "" quindi dovrei creare una variabile dove far scorporare il testo come postato e poi effettuare la ricerca, poi dovrei prendere grandi pezzi di testo per trovare quello che mi serve visto che il codice si ripete in gran parte, che ne dici? sto tralasciando qualche particolare, poi per elaborare le informazioni di tutti i file(visto che ogni chiusura tavolo mi crea un file)mi conviene in un database o in un array. grazie per la pazienza so che è un progetto difficile ma lo si può chiedere solo a gente veramente preparata


  • Formattazione file testo!?
    di Mik (utente non iscritto) data: 06/01/2011

    Dovrebbe essere più semplice di quanto tu possa immaginare...
    io putroppo non riesco a capire così come hai postato.. la formattazione originale di questo file di testo?? altrimenti ti posterei i codici...
    ...come e dove sono posizionati quei caratteri > < " "?? magari delimitano inizio e fine riga e campo...sarebbe più semplice se quel file lo pubblicheresti in modo da visionarlo.



  • di Angelus (utente non iscritto) data: 06/01/2011

    In maniera originale non me lo posta dovrei fare un allegato per poterlo visionare su un foglio .txt come faccio ad allegarlo?


  • Allegato su file sharing
    di Mik (utente non iscritto) data: 06/01/2011

    Su questo forum aimè non è possibile allegare
    però potresti upparlo su web di file sharing, tipo www.megauload.com o www.hotfile.com o altri a tuo piacimento (tuti gratis e senza iscrizione) e postare qua il link di quel file che hai uppato (il link te lo rilascia il sito stesso subito dopo averlo uppato)



  • di Angelus (utente non iscritto) data: 06/01/2011

    Http://hotfile.com/dl/94786205/e98cca7/codice_da_visionare.txt.html



  • di Mik (utente non iscritto) data: 07/01/2011

    Da una veloce prova mi ha restituito questo:

    nicknameaangelus1/nickname
    player seat=10 name=aangelus1 chips=1,500 dealer=0 win=130 bet=60 /
    cards type=pocket player=ddsjdfsjx x/cards
    cards type=pocket player=aangelus1hk d10/cards
    action no=9 player=aangelus1 type=3 sum=20 cards= /
    cards type=flop player=h6 c5 c3/cards
    action no=15 player=aangelus1 type=5 sum=20 cards= /
    action no=19 player=aangelus1 type=4 sum=0 cards= /
    action no=21 player=aangelus1 type=5 sum=20 cards= /


    puoi personalizzare l'estrazione tramite le parole che includi nel vettore di stringhe includi_riga=(....,...) separate da una virgola....praticamente estrae solo le righe con quelle corrispondenze.

    il codice sotto, legge dal file (che dovrai configurare con la variabile "file") e il risultato lo aggiunge nel doucumento di word..ma puoi meterlo dove pare a te!!

    nel codice sotto ho sostituito con "@" il simbolo del "cancelletto" perchè in questo forum taglia tutto il restante messaggio (eppure nella finestra codice c'è scritto "codice vba" bhaaa..come anche il segno "più" e la "e" commerciale....
    mahh...ho fatto più fatica a posta il codice che a capire quel file....

    se hai altri dubbi chiedi pure..

    ciao

     
    Sub Pulisci_Estrai()
        Dim File As String, S As String
        Dim Pulisci_Simboli() As Variant
        Dim Includi_Riga() As Variant
        
        File = "D:UsersMikDocumentsFile ricevutiCodice_da_visionare.txt"
        Pulisci_Simboli = Array(Chr(34), "<", ">")
        Includi_Riga = Array("Aangelus1", "player=ddsjdfsjX", "type=Flop")
        
        ThisDocument.Range.Delete
        Open File For Input As @1      <------ cancelleto
            Do While Not EOF(1)
            
                Line Input @1, S     <------- cancelleto
                
                'ripulisce
                For Each simbolo In Pulisci_Simboli
                    S = Trim(Replace(S, simbolo, "", 1, -1))
                Next simbolo
                
                'estrae
                For Each Estrai In Includi_Riga
                    If InStr(1, S, Estrai) Then
                        ThisDocument.Range.InsertAfter S + Chr(13) <-------- mettici il segno "più" tra S e Char(13) "incredibile"
                        Exit For
                    End If
                Next Estrai
            Loop
        Close 1
    End Sub
    
    



  • di Angelus (utente non iscritto) data: 07/01/2011

    Non so veramente come ringraziarti per il tempo che mi hai dedicato, ieri ho provato a farlo solitamente lavoro prima con piccoli programmini che mi fanno arrivare allo scopo per poi assemblarlo al programma principale non appena vedo che risponde alle richieste. premettendo che nel programma principale ho implementato la conversione del testo togliendo quei caratteri indesiderati con replace ora il programmino che dovro implementare e venuto così ..........codice vba........ con questo programma riesco a estrappolare il primo dato che mi serve, cioè le carte iniziali, poi aggiungero altri dati da prelevare nella stessa ricorsione. però mi è nato un problema siccome la mano comincia sempre con gamecode e non si ha un carattere univoco alla fine ho usato quello. ma si presenta il problema all'ultimo gamecore perchè non riesce ad entrarci perche non ci sono più gamecore, forse se uso la funzione len per inserirci alla fine un gamecore risolvo, comunque che dici qualche consiglio (debbo buttare tutto o si può salvare qualcosa)
     
    Dim carteMie As Long
    Dim valorecarte As String
    Dim posizione As Long
    
    
    Private Sub Command1_Click()
    
    lettere = Len(Text1.Text)
    testo = Text1.Text
    uno = 1
    posizione = 0
    Do
    posizione = InStr((uno), testo, "gamecode")
    porzionetesto = Mid$(testo, uno, posizione)
    
    carteMie = InStr(1, porzionetesto, "cards type=Pocket player=Aangelus1")
    valorecarte = Mid$(porzionetesto, carteMie + 34, 7)
    valorecarte2 = a + valorecarte
    Text2.Text = valorecarte2
    a = Text2.Text
    uno = posizione + 1
    Loop Until posizione = 0
    End Sub



  • di Angelus (utente non iscritto) data: 07/01/2011

    Ho risolto con un costrutto if chiedendo se la posizione = 0 sottrai con il len
    comunque rimane sempre che ne pensi ?



  • di Mik (utente non iscritto) data: 07/01/2011

    Se ho capito bene.......prova ad ingannare la variabile "testo" accodandoli la parola " gamecode" alla fine del testo.

    diventerebbe così:
     
    testo = Text1.Text + "gamecode"



  • di Angelus (utente non iscritto) data: 07/01/2011

    C'è qualcosa per semplificare il replace senza che devo copiare ogni volta la variabile per togliere un altro carattere

    come si scarica il form dalla memoria con il tasto windows chiudi ( x rosso sopra in alto a destra)

    che celerita in questo sito un ringraziamento hai componenti es. mik
     
    valorecarte = Replace(valorecarte, ")", "")
    valorecarte = Replace(valorecarte, ",", "")
    valorecarte = Replace(valorecarte, "?", "")



  • di Mik (utente non iscritto) data: 07/01/2011

    Tra qualche giorno diventi un developmenters

    per scaricare un form tramite codice:

    unload (nome del form) <----senza le parentesi
    oppure se ti trovi nell'ambiente del form stesso, semplicemente:
    unload me

    per il replace non conosco altri metodi se non quelli personali...
    esempio potresti crearti un funzione tua, che passandoli come argomento il testo ed n° simboli da sostituire, ti restituisce il risultato voluto.
    esempio io la chiamerei così:

    testo = pulisci(text1.value,"<",">","?", n° parametri.....)


    ps. non faccio parte dei componenti di questo forum, sono solo di passaggio che aspetto forse qualche risposta o un'idea riguardo a un mio problema!

    ciao



  • di Angelus (utente non iscritto) data: 09/01/2011

    Salve a tutti perchè mi fa l'errore ????
    se per esempio nella text1 inserisco 1,545
     
    Private Sub Command1_Click()
    winrep = Text1.Text
    win = Replace(1, winrep, ",", "")
    Text2.Text = win
    End Sub