Newsgroup: it.comp.lang.visual-basic
Titolo: VB Script: Aiuto per valutare quanti 0 ci sono in una stringa

VB Script in una pagina ASP
Devo inserire una serie di dati consecutivi in un Db utilizzando una sola
pagina Asp ed un solo Form (fin qui ce l'ho fatta), ma ho un problema con
gli zeri
I dati possono essere di questo tipo
From    AA000100BB
To        AA001100BB
Per fare questo scompongo la stringa in sei textbox (poi in realtà ne
servono solo 4)
   ParteFissa1              FROM           Partefissa2
         AA                    000100                BB
    ParteFissa3                  TO             ParteFissa4
        AA(non serve)    001100                BB (non serve)
Riesco a recuperare i dati dal Form, fare il ciclo che incrementa FROM fino
a TO ed inviarli al Db, ma ho un problema con gli zeri, perchè quando li
valuto in formato numerico gli zeri iniziali vengono rimossi.
Come posso fare a recuperarli ed aggiungerli alla stringa considerando che
quando il contatore supera 10 o 100 o ...devo logicamente rimuoverne 1 o 2 o
più?
La lunghezza della stinga FROM non è fissa, nè tantomeno sono fissi il
numero di zeri con la quale potrebbe cominciare
Ringrazio per qualsiasi aiuto
Roberto
=====================
<%
If (CStr(Request("MM_Insert")) <> "") Then
MM_editRedirectUrl = "\Test.asp"
 Dim Test_Conn, Inizio, Fine, TestoInizio, TestoFine, Posizione, Quanti,
Cerca
 Inizio = 0
 Fine=0
 a=0
 b=0
 TestoInizio = 0
 TestoFine = 0
 Posizione = 1
 Quanti = 1
 Cerca = "0"
'Creo ed apro la connessione al Db
  Set Test_Conn = Server.CreateObject("ADODB.Connection")
  Test_Conn.Open MM_MagazzinoTest_STRING
'Recupero i valori dei Textfield From e To sui quali verrà effettuato il
ciclo
  Inizio=(Request.Form("TextFieldFROM"))
  Fine=(Request.Form("TextFieldTO"))
 if len(Inizio) <> 0 then
'Questa è la parte che non riesco a fare
 'Recupero le stringhe di TextFieldFRom e TO per valutare se cominciano con
0 e quanti ne conengono
  TestoInizio = Request.Form("TextFieldFROM")
  TestoFine = Request.Form("TextFieldTO")
   Do while Quanti <> 0
   Quanti = Instr(1, TestoInizio, Cerca, 1)
   If Quanti = 0 and Cerca = "0" Then Cerca = NULL : Exit Do
   Cerca = Cerca & "0"
   Loop
'Eseguo il ciclo incrementando TexFieldFrom di 1 ogni volta
  for i = Inizio to Fine
' Recupero le stringhe di TextField di parte fissa
   a = Request.Form("TextPARTEFISSA1")& Cerca & i
   b = Request.Form("TextPARTEFISSA2")
'Inizia il montaggio della stringa Sql dove ogni valore da inserire sarà
composto da TextPARTEFISSA1 + Gli Zeri + (ì) +TextPARTEFISSA2
    sql = "insert into Articoli (Dati1)"
    sql = sql & " values ("
    sql = sql & "'" & a
    sql = sql & b & "')"
' Eseguo l'istruzione Sql e scrivo nel Db
    Test_Conn.execute(sql)
  next
 Test_Conn.Close
  If (MM_editRedirectUrl <> "") Then
       Response.Redirect(MM_editRedirectUrl)
     End If
 End If
End If
%>

se ho ben capito potresti usare la funzione string
tuastringa  = "AA" & string(6 - len (numero),"0") & numero & "BB"
dove il numero degli zeri da aggiungere è dato da "6-len(numero)"
come in VB
ciao
Carlo

Grazie.
Cosě č perfetta.
lastringa = Request.Form("TextPARTEFISSA1") & string(len(TestoInizio)-
len(i), "0") & i & Request.Form("TextPARTEFISSA2")
Ciao
Roberto