dsbilling Skrevet 27. august 2009 Del Skrevet 27. august 2009 (endret) Hvordan kan jeg lage en "Character Counter"? Den skal altså telle hvor mange boksatver som blir skrevet i en tekstboks. Noen som kan dette? Trenger svar fort! Endret 27. august 2009 av dsbmaster Lenke til kommentar
Merko Skrevet 27. august 2009 Del Skrevet 27. august 2009 Hvordan kan jeg lage en "Character Counter"? Den skal altså telle hvor mange boksatver som blir skrevet i en tekstboks. Noen som kan dette? Trenger svar fort! Den letteste måten er vel: MessageBox.Show(TextBox1.Text.Length) Lenke til kommentar
GeirGrusom Skrevet 27. august 2009 Del Skrevet 27. august 2009 (endret) [string].Length teller ikke teknisk sett hvor mange tegn som er i teksten, den teller hvor mange 16-bit shorts den består av. edit: men i 99.9% av tilfeller er det bra nok. Endret 27. august 2009 av GeirGrusom Lenke til kommentar
dsbilling Skrevet 27. august 2009 Forfatter Del Skrevet 27. august 2009 Men er det noen måte jeg kan vise det i en Label? Lenke til kommentar
_powerade_ Skrevet 28. august 2009 Del Skrevet 28. august 2009 (endret) Me.Label1.Text = CStr(Me.TextBox1.Text.Length) Edit: (CStr fordi jeg konsekvent bruker Option Strict...) Endret 28. august 2009 av _powerade_ Lenke til kommentar
GeirGrusom Skrevet 28. august 2009 Del Skrevet 28. august 2009 Hvorfor ikke Label1.Text = Textbox1.Text.Length.ToString ? Det spiller egentlig ingen rolle, men jeg synes CStr er en litt arkaisk måte å skrive på. Lenke til kommentar
dsbilling Skrevet 28. august 2009 Forfatter Del Skrevet 28. august 2009 Takker. Og en ting til, er det mulig til å få den til å telle fra feks 100 og nedover til 0 og etter null så blir tallene røde? Lenke til kommentar
GeirGrusom Skrevet 28. august 2009 Del Skrevet 28. august 2009 If teller < 0 Then Label1.ForeColor = Color.Red Lenke til kommentar
dsbilling Skrevet 28. august 2009 Forfatter Del Skrevet 28. august 2009 (endret) If teller < 0 Then Label1.ForeColor = Color.Red Du kan jo ALT! EDIT: Hva blir koden hvis jeg skal telle nedover fra 140 til 0, og fra og med 10 så blir koden rød? Endret 28. august 2009 av dsbmaster Lenke til kommentar
GeirGrusom Skrevet 28. august 2009 Del Skrevet 28. august 2009 For i As Integer = 140 To 0 Step -1 Label1.Text = i.ToString() If i <= 10 Then Label1.ForeColor = Color.Red Next Du må slenge en eller annen forsinkelse inn der også. Lenke til kommentar
dsbilling Skrevet 28. august 2009 Forfatter Del Skrevet 28. august 2009 For i As Integer = 140 To 0 Step -1 Label1.Text = i.ToString() If i <= 10 Then Label1.ForeColor = Color.Red Next Du må slenge en eller annen forsinkelse inn der også. Nå teller den ikke Lenke til kommentar
GeirGrusom Skrevet 28. august 2009 Del Skrevet 28. august 2009 Blir den rød? Står det 0? Lenke til kommentar
dsbilling Skrevet 28. august 2009 Forfatter Del Skrevet 28. august 2009 Blir den rød? Står det 0? Stemmer... Lenke til kommentar
GeirGrusom Skrevet 28. august 2009 Del Skrevet 28. august 2009 Den teller ned til 0, men du rekker ikke se det. Delvis fordi den ikke tegner opp på nytt, og delvis fordi det går for fort. Lenke til kommentar
dsbilling Skrevet 28. august 2009 Forfatter Del Skrevet 28. august 2009 Den teller ned til 0, men du rekker ikke se det. Delvis fordi den ikke tegner opp på nytt, og delvis fordi det går for fort. Hva må jeg gjøre da? Lenke til kommentar
GeirGrusom Skrevet 28. august 2009 Del Skrevet 28. august 2009 Hehehe. Gidder ikke skrive noe kode. En forsinkelse kan lages enkelt ved å bruke Environment.TickCount egenskapen, som forteller deg hvor mange millisekunder som har gått siden OS-et startet. Sleng inn en DoEvents for å passe på at GUI-en fortsatt er responsiv mens nedtellingen foregår. Lenke til kommentar
_powerade_ Skrevet 10. september 2009 Del Skrevet 10. september 2009 (endret) [string].Length teller ikke teknisk sett hvor mange tegn som er i teksten, den teller hvor mange 16-bit shorts den består av.edit: men i 99.9% av tilfeller er det bra nok. Hva bør man bruke i stedet for .Length da?? Endret 10. september 2009 av _powerade_ Lenke til kommentar
brgr Skrevet 12. september 2009 Del Skrevet 12. september 2009 Istedefor Length kan du jo faktisk telle hver Char i Strengen. Function CountChar([str] As String) As Long CountChar = 0 For Each x As Char In [str] CountChar += 1 Next x End Function For å finne lenge kan du da enkelt bare skrive MsgBox(CStr(CountChar("Hei på deg"))) Lenke til kommentar
GeirGrusom Skrevet 12. september 2009 Del Skrevet 12. september 2009 Vel, poenget er at det finnes unicode tegn som bruker 32-bit. For å telle antall tegn i en tekststreng bruker en System.Globalization.StringInfo klassen. Dog for alle norske tegn finnes det en 16-bit representasjon. Dim info As New StringInfo(min_tekst_streng) MessageBox.Show(info.LengthInTextElements.ToString()) Lenke til kommentar
_powerade_ Skrevet 12. september 2009 Del Skrevet 12. september 2009 (endret) Vel, poenget er at det finnes unicode tegn som bruker 32-bit. Ok, så hvis det er tegn som bruker 32-bit, så vil string.Length telle denne som 2 tegn? Det vil jo kanskje i noen tilfeller ha en ganske stor betydning hvis ikke utvikleren har tatt høyde for dette?? Forresten: Hvor lenge har du drevet med dette GeirGrusom, det er jo ikke noe du ikke kan Endret 12. september 2009 av _powerade_ Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå