Avatar billede krycek Nybegynder
04. september 2007 - 17:50 Der er 6 kommentarer og
1 løsning

0 foran værdi hvis mindre end 10

Jeg henter linierne fra en tekstfil ind i en listbox.
Derefter vil jeg gerne kunne omdøbe filerne i en bestemt mappe med det som står i listbox + tekstfelter.
Text2.Text er første del indtaster, f.eks. 03
Text3.Text er anden del som man indtaster, f.eks. 7 (eller 07)

Dette skal så laves om (bruger pt. bare en Msbox til at tjekke output:

Billed filnavn: "A" & Text2.Text & "B" & Text3.Text & ".jpg

(Bemærk a er sat som public integer)
Private Sub Command3_Click()
a = Text3.Text
For i = 0 To List1.ListCount - 1
    If a < "10" Then
        a = "0" & a
    End If
  MsgBox ("Det her er: A" & Text2.Text & "B" & a & " " & List1.List(i))
a = a + 1
Next i
End Sub

Men den vil ikke skrive a med 0 forna (altså 2 tegn) hvis det er mindre end 10.
Hvis jeg så prøver at bruge Text3.Text hele vejen i tælleren, så vises den rigtig hvis jeg skriver 07 i Text3.text med 8 er uden 0
Avatar billede Six Nybegynder
04. september 2007 - 18:24 #1
Jeg kender ikke lige til vb.

Men kan de ikke klares sådan her:
For i = 0 To List1.ListCount - 1
    b = "0"
    If a < "10" Then
        a = b & a
    End If
  MsgBox ("Det her er: A" & Text2.Text & "B" & a & " " & List1.List(i))
a = a + 1
Next i
Avatar billede kabbak Professor
04. september 2007 - 18:24 #2
prøv sådan

PPrivate Sub Command3_Click()
    Dim X As String
    a = Text3.Text
    For i = 0 To List1.ListCount - 1
        If a < 10 Then
            X = "0"
        Else
            X = ""
        End If
        MsgBox ("Det her er: A" & Text2.Text & "B" & X & a & " " & List1.List(i))
        a = a + 1
    Next i
End Sub
Avatar billede krycek Nybegynder
04. september 2007 - 18:42 #3
det funker, er det så fordi at en integer bruger 0 = "" ?, siden at X er en string ?
Men smid det et svar og tak for hjælpen
Avatar billede kabbak Professor
04. september 2007 - 18:46 #4
Et svar ;-))

du skriver :"(Bemærk a er sat som public integer)"

det betyder at A er et tal og ikke en string
derfor skal
If a < "10" Then
være
If a < 10  Then

derfor er:
f.eks. 08 med et 0 foran, er stadig 8
Avatar billede krycek Nybegynder
04. september 2007 - 18:49 #5
Ok, så ved jeg da det til en anden gang.
Gælder jo om at kende fiduserne ;)
Avatar billede kabbak Professor
04. september 2007 - 18:52 #6
nu har jeg ikke testet, men mon ikke også format kunne gøre det.

Du kan jo prøve at teste med lidt af hvert.
Format(a, "00.0")
Format(a, "##")
Format(a, "##.0")

o.s.v


Private Sub Command3_Click()
    Dim X As String
    a = Text3.Text
    For i = 0 To List1.ListCount - 1
        MsgBox ("Det her er: A" & Text2.Text & "B" & Format(a, "00.0") & " " & List1.List(i))
        a = a + 1
    Next i
End Sub
Avatar billede kabbak Professor
04. september 2007 - 18:55 #7
det er Format(a, "00"), der virker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester