[VB] string naar array.

Pagina: 1
Acties:

  • Gijsie
  • Registratie: Mei 2002
  • Laatst online: 30-08 09:26
Misschien een eenvoudige oplossing...

Ik wil een String, uit een Textbox omzetten naar een 1-demensionaal Array

Voorbeeld

dim Str1 as String
dim arrayA(3) as String

Str1 = "Gijs"

Hoe maak ik deze stap???????????????????????????

arrayA(0)="G"
arrayA(1)="i"
arrayA(2)="j"
arrayA(3)="s"

GREETZ..

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:30
Met behulp van een for-lus. De string overlopen en ieder karakter in de array zetten.
Zijn strings in VB trouwens geen arrays op zich?

https://fgheysels.github.io/


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 06-09 22:39
Strings in basic zijn BSTR's. Dwz het begint met de lengte van de string en daarna de string zelf. Je kunt ze in vb niet behandelen als een array trouwens.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

farlane:
Dwz het begint met de lengte van de string en daarna de string zelf.
In het geheugen bedoel je?

just curious :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
als Str1 = "Gijs" en x = 1 -> len(Str1)

dan geldt:
arrayA(0)= mid(Str1, x-1, 1) = "G"
arrayA(1)= mid(Str1, x-1, 1) = "i"
arrayA(2)= mid(Str1, x-1, 1) = "j"
arrayA(3)= mid(Str1, x-1, 1) = "s"

oftewel, mid(Str1, x-1, 1) is wat handiger?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
er bestaat zo iets al de "split"-functie

maar dan moeten er wel scheidingstekens zijn. Misschien als je nu eens geen scheidingsteken opgeeft? :P ('k heb dit wel zelf nog niet geprobeerd)

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

bigtree:
als Str1 = "Gijs" en x = 1 -> len(Str1)

dan geldt:
arrayA(0)= mid(Str1, x-1, 1) = "G"
arrayA(1)= mid(Str1, x-1, 1) = "i"
arrayA(2)= mid(Str1, x-1, 1) = "j"
arrayA(3)= mid(Str1, x-1, 1) = "s"

oftewel, mid(Str1, x-1, 1) is wat handiger?
oftewel je bedoelt:
code:
1
2
3
FOR x = 0 to len(string)
   arrayA(x) = mid(string, x, 1);
next x

disclaimer:
VB is not my kinda language ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Op donderdag 30 mei 2002 16:57 schreef drm het volgende:

[..]
code:
1
2
3
FOR x = 0 to len(string)
   arrayA(x) = mid(string, x, 1);
next x
Maak daar van:
code:
1
2
3
FOR x = 1 to len(string)
   arrayA(x-1) = mid(string, x, 1);
next x

Als je hem wilt zoals je in je eerste post zei.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 06-09 22:39
Op donderdag 30 mei 2002 15:55 schreef drm het volgende:

[..]

In het geheugen bedoel je?

just curious :)
Jup. Daar wordt je op gewezen als je een dll functie met een char * argument called met een String vanuit vb. ;)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Op donderdag 30 mei 2002 15:45 schreef farlane het volgende:
Strings in basic zijn BSTR's. Dwz het begint met de lengte van de string en daarna de string zelf. Je kunt ze in vb niet behandelen als een array trouwens.
Het werkt het nog bizarder zelfs de pointer naar je string wijst gewoon naar 'n 0 terminated unicode string maar in de 4 bytes voor je pointer staat de lengte van je string..

Verwijderd

Het converteren van verschillende typen. Dit werkt ook bijvoorbleeld om van bijv 2 integers 1 long te kunnen maken enz. Hangt maar net af wat voor typen het zijn.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Option Explicit


Private Type tString
    str As String * 5
End Type


Private Type tArray
    arr(4) As Byte
End Type


Private Sub Command1_Click()

Dim blaat As tArray
Dim blaat2 As tString

blaat2.str = "test"


LSet blaat = blaat2



MsgBox Chr(blaat.arr(0)) + Chr(blaat.arr(1)) + Chr(blaat.arr(2)) + Chr(blaat.arr(3)) + Chr(blaat.arr(4))

End Sub

  • Gijsie
  • Registratie: Mei 2002
  • Laatst online: 30-08 09:26
Split werkt niet, had ik al geprobeerd
je moet inderdaad een scheidingsteken opgeven.
met " " (spatie) onderscheid je woorden; elk woord in een array element.

met "" zet je de hele string in een element.

Ik zal het eens proberen met de Mid functie

Bedankt alvast!
Pagina: 1