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

Hybrid View

  1. #1

    Se la lista contiene un item, ma...

    Ciao a tutti,
    uso Visual Studio, e ho realizzato un programma che riceve stringhe da un server telnet e le elabora.
    Ho creato un setting come collection di stringe, e devo scrivere in questo setting alcune stringhe ricevute dal server ed appendere alla stringa la data (now).
    Tutto a posto, so farlo, ma il problema è questo:
    la stringa è composta da:
    RM0001 & now ' ricevuta alle ore 12:00
    MI0001 & now ' ricevuta alle ore 12:02
    NA0001 & now ' ricevuta alle ore 12:04
    RM3716 & now ' ricevuta alle ore 12:05

    qualora arrivasse ad esempio una stringa già inserita in passato, mi deve cancellare la vecchia e inserire la nuova

    RM0001 & now ' ricevuta alle ore 12:25

    come posso fare questo controllo?
    Ho provato a fare un MID di ogni item della collezione di stringhe ma dava sempre errore e ho desistito.
    C'è qualche soluzione?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma cosa è importante? La prima parte, l'ora o tutte e due le info?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    La cosa fondamentale è il prefisso, nella lista ci deve essere sempre l'ultima ricezione.

    In pratica a me dal server arriva RM0001.
    Devo vedere se è gia in lista questo RM0001. Se non c'è va inserito con appesa l'ora, se già è in lista (solo RM0001 l'orario non è importate), deve cancellare l'item e inserire il nuovo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Usa un oggetto Dictionary usando la prima parte come key e l'orario come value



    https://msdn.microsoft.com/it-it/lib...v=vs.110).aspx
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Si, poi come faccio a cancellare l'item?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non lo cancelli, sostituisci il valore
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Non lo cancelli, sostituisci il valore
    Ma si applica a My.Setting (String collection)???

    Devo fare sempre for each item???????

  8. #8
    Se mentre esegui un ciclo For Each elimini un elemento è normale che ottieni un errore, perché il numero di elementi cambia in corso di esecuzione.

    Ma tu non hai bisogno di eliminarlo, ma SOLO di sostituirlo:

    codice:
    Dim Bool as Boolean
    For x as Integer = 0 to My.Settings.storico.count - 1
    
       if My.Settings.Storico(x).Contains(PREFISSO) Then
          Bool = True
          My.Settings.Storico(x)= PREFISSO & " | " & Now
       End If
    
    Next
    
    If Not Bool Then ........


    Ultima modifica di eziogsv; 26-12-2015 a 18:19

  9. #9
    Perfetto, quest'ultimo codice sembra essere OK!!!!
    Sto controllando tutto... per ora grazie!!!
    Ultima modifica di Pamela72; 26-12-2015 a 18:42

  10. #10
    Il codice è questo:
    codice:
    For Each item In My.Settings.storico
                If item.Contains(PREFISSO) Then
                    My.Settings.storico.Remove(item)
                End If
            Next
            My.Settings.storico.Add(PREFISSO & " | " & Now)
    Ma mi compare questo errore: L'insieme è stato modificato. L'operazione di enumerazione potrebbe non essere eseguita.

    Si può risolvere?

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.