|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
[vb.net] Eliminazione Multipla file di testo
Ho 2 file di testo, in uno ci sono dei numeri in combinazione e nell'altro pure. Ho bisogno di metterli a confronto per poer eliminare dal foglio 1 le righe scritte nel folgio 2.
foglio 1: 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 3 4 5 6 7 8 foglio 2: 1 3 4 5 6 7 4 5 6 7 8 9 3 4 5 6 7 8 1 2 3 4 5 6 2 3 4 5 6 7 devo mettere a confronto il foglio 1 con il 2 e le righe del foglio 1 che sono presenti nel foglio 2 devono essere eliminate. come faccio???c'è un metodo per metterle a confronto tutte assieme o devo scorrermi riga per riga...mi potreste consigliare...grazie... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
ho fatto il tutto con un array...solo che ovviamente devo passarmi riga per riga...ecco come ho fatto...
il mio problema alla fine è quello di ordinare in modo crescente i valori all'interno di una stringa nel minor tempo possibile.... esempio: str= "10 5 4 7 2" devo ottenere str="2 4 5 7 10" io ho fatto in questo modo ma cercavo un modo più veloce, sperando che esista.... io ho fatto così: Codice:
Dim j As Integer Dim a As String, c As String Dim b Dim arrayl As New ArrayList arrayl.Clear() ''trasformo la stringa in un array a = str ''se a =nothing esci dalla funzione che non serve If a = Nothing Then Exit Function End If b = Split(a, " ") ''faccio il ciclo per iserire all'interno di un array list i valori For j = 0 To UBound(b) ' 'converto in numero il contenuto dell'array così mi mette in ordine crescente i numeri, tutti i numeri. arrayl.Add(CInt(b(j))) Next ''li ordino arrayl.Sort() b = arrayl For j = 0 To arrayl.Count - 1 c = LTrim(c & " " & arrayl.Item(j)) Next ritstrord = c |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2003
Città: Lugano (Svizzera)
Messaggi: 598
|
Sicuramente ci sono metodi più eleganti di come l'ho buttato giu io, ma dovrebbe funzionare:
Codice:
Dim sortedString As String = "" Dim testString As String = "10 5 8 12 4 65 1" Dim strArr As String() = Strings.Split(testString, " ") Dim tempAL As New ArrayList For Each _str As String In strArr tempAL.Add(CInt(_str)) Next tempAL.Sort() For Each obj As Integer In tempAL sortedString &= obj & " " Next 'Rimuovo l'ultimo spazio sortedString = Left(sortedString, sortedString.Length - 1)
__________________
XBox GamerTag : Black CrB | PSN : Black_CrB | Steam : CrB® Ultima modifica di Crashbandy80 : 08-02-2007 alle 10:13. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
a me serve velocità...meno passaggi possibili...di sicuro il tuo è più elegante del mio....cmq grazie mille... se avete altri consigli... |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
anzi, riprendendo la domanda del mio priomo post...c'è il modo di cancellare le righe singole o multiple da un file di testo con gli oggetti StreamReader e StreamWriter???
così non avrei più problemi di velocità... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:32.