Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [Vb.net] Estrazione messaggi

    Ciao a tutti,
    In una TextBox inserisco dei testi separati dal carattere ";" che dopodichè rimando all'interno di un Input nel WebBrowser
    Sfortunatamente non riesco ad estrarre tutti i messaggi, ma mi va ad incollare solamente l'ultimo...
    Come mai? Qualche buona anima che mi possa aiutare? Erano anni che non programmavo e ora mi ritrovo in difficoltà.

    codice:
     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Dim htmlElements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("textarea")
            For Each el As HtmlElement In htmlElements
                Dim messaggiofinale As String
                Dim messaggi As String()
                messaggi = TextBox8.Text.Split(New Char() {";"})
                For Each messaggiofinale In messaggi
                    If el.GetAttribute("name").Equals("status") Then
                        el.SetAttribute("Value", messaggiofinale)
                    End If
                Next
            Next
            Dim button As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Input")
            For Each el2 As HtmlElement In button
                If el2.GetAttribute("name").Equals("update") Then
                    el2.InvokeMember("click")
                End If
            Next
            Timer1.Stop()
            Timer1.Start()
        End Sub

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    C'è un errore logico nel codice che hai postato.

    Fai un ciclo dei valori separati da ";" ma scrivi solo quello attuale, quindi alla fine avrai scritto solo l'ultimo. Dovresti concatenare.

    Poi non ho capito bene, se vuoi scrivere tutti i messaggi, perchè li separi prima?
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Ciao,
    Grazie mille per la risposta, vedo di rispondere io invece ora alle tue domande, in ordine:

    1) In sostanza si tratta di un software con un TextBox dove l'utente scrive dei messaggi separati dal carattere ";" che vuole pubblicare su Facebook dopo ogni tot. secondi (decisi dall'utente nel TextBox2).
    Lo scopo è quello di estrarre il primo messaggio, pubblicarlo e passare alla pubblicazione del messaggio successivo dopo i secondi da lui impostati (Messaggio1;Messaggio secondo;Messaggio terzo)

    2) Come posso scrivere ogni volta il successivo? Mi hai detto di concatenare, ovvero, quale funzione dovrei fare?

    Sia chiaro, non voglio la pappa pronta, non prendetemi per uno che la vuole

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da lmercatanti

    Sia chiaro, non voglio la pappa pronta, non prendetemi per uno che la vuole


    Tranquillo, non voglio darti la soluzione finale.

    Credo che l'impostazione sia sbagliata.

    Al click richiamato da codice sembra che tu faccia tutta l'operazione.

    Invece per ogni messaggio separato da ";" devi fare un click, mi pare di capire, quindi dovresti rivedere la questione in maniera diversa.

    Poi cosa succede se uno dei messaggi contiene proprio un ";" (cosa molto comune...)?

    Usa un separatore diverso, magari costruito ad hoc (chessò "<;>", che se il tuo amico lo mette in un messaggio è da neuro... )
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Ciao,
    Come al solito rispondo in ordine:

    1) Non importa se l'utente usa il carattere ";" in realtà. Questo perchè l'utente andrà ad incollare solamente un link, al momento non mi interessa filtrare la cosa (al massimo come hai detto tu, basta modificare il carattere di separazione, quindi per me questo è il problema minore)

    2) Effettivamente ci avevo fatto caso pure io, ho inserito all'interno del tick del timer tutte le funzioni.
    Quindi come soluzione è meglio fare un button che prima estrae i testi e dopo nel tick del timer posta uno per uno, giusto?

    Se concordi che la soluzione possa essere questa: Come definisco, dopo aver estratto le frasi, la successione?
    Ovvero: Come faccio, nel tick del timer, a far pubblicare ogni tot. secondi il messaggio successivo?

  6. #6
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da lmercatanti

    Se concordi che la soluzione possa essere questa: Come definisco, dopo aver estratto le frasi, la successione?
    Ovvero: Come faccio, nel tick del timer, a far pubblicare ogni tot. secondi il messaggio successivo?
    La successione dovrebbe essere questa:

    1: prendi l'insieme dei messaggi
    2: con lo split fai un vettore (dichiarato con scope fuori dalla funzione)
    3: con un timer aggiorni un indice e pubblichi il messaggio relativo all'indice

    questo proprio in tre parole, se hai problemi a passarlo in codice vediamo insieme.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  7. #7
    Ho provato a buttare giù del codice, ma ho dei problemi dato che non so come sviluppare sottoforma di codice dei passaggi
    Allora, vediamo quello che ho fatto:

    PRENDO L'INSIEME DEI MESSAGGI con la pressione del Button e li salvo in "messaggi", divisi tramite la funzione Split (e qui mi sa c'è il primo errore)
    codice:
    Dim messaggi As String()
    messaggi = TextBox8.Text.Split(New Char() {";"})
    Dopodichè non ho capito bene il discorso della funzione Scope, mi puoi aiutare su questo?

  8. #8
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Una domanda: è una applicazione Windows Form o Web?
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  9. #9

  10. #10
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    "messaggi" deve essere dichiarata a livello di classe, in modo da essere visibile (scope) in tutte le funzioni e sub del form

    al click viene inizializzata messaggi così come hai fatto
    al click parte anche il timer

    nel timer puoi passare il singolo messaggio

    vedi tu come far variare l'indice dei messaggi
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

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.