Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  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,466
    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,466
    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,466
    Non lo cancelli, sostituisci il valore
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    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?

  8. #8
    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???????

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non hai letto il link nè hai visto l'esempio... Devi utilizzare un oggetto Dictionary

    Dim db As Dictionary(Of String, String)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.