Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Necessiterei di qualche script VB per ordinare una serie di valori...

    Più precisamente...

    Un comando per ordinare lanciando un .vbs i seguenti numeri di un file txt

    31,47,12,7,80;
    37,82,69,9,67;
    24,40,12,77,30;
    14,51,22,85,25;
    18,6,46,62,78;
    88,5,38,20,35;
    51,5,75,59,35;
    1,6,20,24,42;
    81,44,57,56,30;
    1,22,64,25,53;
    75,89,61,41,22;
    19,31,25,9,54;
    64,75,87,35,25;
    30,21,74,84,89;
    3,87,74,33,49;
    6,39,53,7,79;
    88,57,84,23,70

    In particolare vorrei ordinarli riga per riga da sinistra a destra in modo crescente...

    Per ottenere secondo l'esempio postato sopra:

    7,12,31,47,80;
    9,37,67,69,82;
    ecc...


    E' possibile creare un file ORDINA.VBS con il codice che esegua questa operazione?

    GRAZIE a tutti/e i/le vb_sti/iste


  2. #2
    Dipende da dove peschi quei valori, in che formato sono, se li trovi in un file scritti esattamente come li hai messi tu... dipende, devi essere + preciso.

    Ps: i programmi per il lotto vanno di moda in questo forum


  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Li pesco da un file txt

    che li contiene esattamente come li ho scritti

    grazie


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi utilizzare anche un programma VB6?

    Perche' deve essere uno script?

  5. #5
    codice:
    Sub Ordina()
       Dim ElementiRiga(6) As String
       Dim ContatoreElementi As Integer
       Dim LunghezzaRiga As Integer
       Dim Record As String
       Dim i As Integer, j As Integer
       Const SeparatoreOutput = ","
       Const FineRecord = ";"
    
       Open "Disco:\Cartelle\File.Input" For Input As #1
       Open "Disco:\Cartelle\File.Output" For Output As #1
    
       While Not Eof(1)
           ContatoreElementi = 1
           Line Input #1, Record
           LunghezzaRiga = Len(Record)
           ElementiRiga(ContatoreElementi) = ""
           'separa numeri
           For i = 1 To LunghezzaRiga
               If IsNumeric(Mid(Record,i,1)) Then
                   ElementiRiga(ContatoreElementi) = ElementiRiga(ContatoreElementi) & Mid(Record,i,1)
               Else
                   ContatoreElementi = ContatoreElementi + 1
                   If ContatoreElementi > 5 Then
                       ElementiRiga(ContatoreElementi) = ""
                   End If
               End If
           Next i
           
           'ordina
           For i = 1 To 4
               For J = i+1 To 5
                   If CInt(ElementiRiga(j)) < CInt(ElementiRiga(i)) Then
                       ElementiRiga(0) = ElementiRiga(j)
                       ElementiRiga(j) = ElementiRiga(i)
                       ElementiRiga(i) = ElementiRiga(0)
                   End If
               Next J
           Next i
           
           'scrivi
           For i = 1 To 5
               Print #2, ElementoRiga(i), SeparatoreOutput;
           Next i
           Print #2, FineRecord
       Wend
       
       Close #1
       Close #2
    End Sub
    L'ho scritta al volo, potrebbe contenere orrori...
    Avrei potuto usare la split per dividere i numeri. Così funziona con qualsiasi separatore

  6. #6
    azz... non si tratta di vb6...
    non riesco a cancellare il msg di prima

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Grazie ma quando lo vado ad eseguire...

    Originariamente inviato da Luciano79
    codice:
    Sub Ordina()
       Dim ElementiRiga(6) As String    
       Dim ContatoreElementi As Integer
       Dim LunghezzaRiga As Integer
       Dim Record As String
       Dim i As Integer, j As Integer
       Const SeparatoreOutput = ","
       Const FineRecord = ";"
    
       Open "c:\daordinare.txt" For Input As #1
       Open "c:\ordinato.txt" For Output As #2
    
       While Not Eof(1)
           ContatoreElementi = 1
           Line Input #1, Record
           LunghezzaRiga = Len(Record)
           ElementiRiga(ContatoreElementi) = ""
           'separa numeri
           For i = 1 To LunghezzaRiga
               If IsNumeric(Mid(Record,i,1)) Then
                   ElementiRiga(ContatoreElementi) = ElementiRiga(ContatoreElementi) & Mid(Record,i,1)
               Else
                   ContatoreElementi = ContatoreElementi + 1
                   If ContatoreElementi > 5 Then
                       ElementiRiga(ContatoreElementi) = ""
                   End If
               End If
           Next i
           
           'ordina
           For i = 1 To 4
               For J = i+1 To 5
                   If CInt(ElementiRiga(j)) < CInt(ElementiRiga(i)) Then
                       ElementiRiga(0) = ElementiRiga(j)
                       ElementiRiga(j) = ElementiRiga(i)
                       ElementiRiga(i) = ElementiRiga(0)
                   End If
               Next J
           Next i
           
           'scrivi
           For i = 1 To 5
               Print #2, ElementoRiga(i), SeparatoreOutput;
           Next i
           Print #2, FineRecord
       Wend
       
       Close #1
       Close #2
    End Sub
    L'ho scritta al volo, potrebbe contenere orrori...
    Avrei potuto usare la split per dividere i numeri. Così funziona con qualsiasi separatore
    Mi dice errore compilazione script a riga 2 carattere 24...
    in sostanza la riga che ho riportato in grassetto...
    ma essendo quasi a digiuno di sifatta programmazione
    ignoro di cosa si possa trattare..

    mi illumini?

    grazie!

    ps: io ho messo papale papale il codice sopra riportato in un file txt modificandone poi l'estensione in .vbs

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quello e' codice VB6 non vbscript ...

    Ma ti era stato detto ...

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Si va bene anche VB6 ma perke' mi da errore?



    O più precisamente... se essendo VB6 nn va bene l'estensione .vbs quale estensione devo associare al file per non avere errori?

    :master:

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Si va bene anche VB6 ma perke' mi da errore?

    Originariamente inviato da freetom


    O più precisamente... se essendo VB6 nn va bene l'estensione .vbs quale estensione devo associare al file per non avere errori?

    :master:
    Capiamoci ... VB6 lo hai installato nel tuo PC?

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.