Avatar billede da_bitsch Nybegynder
16. februar 2005 - 19:20 Der er 10 kommentarer

Lave tekst fra tekstfelt om til værdig af var

Goddag

jeg har et tekstfelt hvor der fx står "hejsa" har ligeledes en variabel der hedder hejsa hvor værdien af variablen hejsa er 1000. Hvordan henter jeg indholdet fra tekstfeltet og ændre indholdet til inholdet til min variable med samme navns indhold ?
Avatar billede joern Nybegynder
16. februar 2005 - 20:55 #1
Hej.

Du kan ikke oprette nye variable ved at indtaste deres navn i et tekstfelt.

M.v.h.  Jørn
Avatar billede martin_moth Mester
17. februar 2005 - 08:57 #2
Mystisk spørgsmål, som jeg ikek helt forstår. Jeg går fuldstændig kold når jeg læser:

"Hvordan henter jeg indholdet fra tekstfeltet og ændre indholdet til inholdet til min variable med samme navns indhold ?" Hvad betyder det på dansk?

Du skal lige gøre dig klart, at der er forskellige typer af variable - long, string, integer, ...

En textbox indeholder altid tekst - også selvom der står "1000".

Her et eksempel

Dim strTextbox as String
Dim lngTextbox as Long
strTextbox = text1.text
lngTextbox = val(text1.text)

'strTextbox indeholder teksten "1000", hvis der stor 1000 i textboxen
'lngTextbox indeholder værdien 1000, hvis der stor 1000 i textboxen
Avatar billede martin_moth Mester
17. februar 2005 - 08:59 #3
Jeg tror ovenstående indeholder det svar du søger, hvis jeg forstår spørgsmålet:

Indlæse en textbox indhold til en variabel:

hejsa = text1.text

Prøv at lade være med at kalde dine variable noget som "hejsa" - af variablens navn skulle man som minimum gerne kunne se hvilken type data det er. Bare et godt råd, der gør det nemmere at overskue din kode, når du når videre
Avatar billede joern Nybegynder
17. februar 2005 - 12:31 #4
Hej Martin.

Tror du bare det er det spørgeren mener?

Jeg opfattede spørgsmålet således, at han dynamisk via indtastning i et tekstfelt ville oprette en ny string-variabel og derpå tildele den en værdi.

M.v.h. Jørn
Avatar billede martin_moth Mester
17. februar 2005 - 12:55 #5
Det kan også være at det er det han/hun mener...?
Vi må vente på en reaktion :o)
Avatar billede da_bitsch Nybegynder
19. februar 2005 - 20:00 #6
Var ikke noget af det ovenstående jeg mente hmmm prøver med et nyt eksempel så.

lad os antage vi har en variabel kaldet "Resultat" med værdien 1000 dvs.
Dim variabel as integer
Resultat = 1000

dernæst har vi et tekstfelt. I tekstfeltet står der "Resultat". Når jeg så fx laver en msgbox af indholdet i tekstfeltet vil der jo naturligt stå

"Resultat"

Det er det jeg gerne vil komme uden om jeg. Jeg ønsker først at omdanne indholdet af tekstfeltet til variablen der har samme navn som det der står i tekstfeltet. Således når man laver en msgbox af indholdet i tekstboxen vil der stå 1000 fordi den omdannede "Resultat" til indholdet af Variablen Resultat. HÅber i forstår mit spørgsmål :)
Avatar billede joern Nybegynder
19. februar 2005 - 21:03 #7
Hej.

Det lyder mystisk, hvad du vil opnå.  Kunne du ikke beskrive formålet, så kan nogen måske foreslå en løsning.

M.v.h. Jørn
Avatar billede da_bitsch Nybegynder
19. februar 2005 - 22:54 #8
hmm er en længere historie.... Det er fordi jeg har en masse intervaller af tal fx fra 0 to 100, hvor hvert interval har en operation tilknyttet til sig. I stedet for har jeg så givet dette interval af tal en symbolsk værdi. På den måde kan man skrive det symbolske tegn i et tekstfelt hvorved meningen så var at programmet skulle konvertere det til et tal og udfører en kommando. Derfor var meningen jo at når man skrev "Resultat" kunne programmet straks finde variablen med samme navn og dernæst erstatte den med tallet 1000.
Avatar billede joern Nybegynder
19. februar 2005 - 23:26 #9
Hej.

Jeg vil anbefale et array i 2 dimensioner, hvor dine intervaller er den ene tabel og de symbolske navne den anden tabel.
Når der skrives et ord i tekstfeltet, søges array'et igennem og når der er match på navnet kan intervallet aktiveres - hvad det nu skal anvendes til.

Hvis dine intervaller og navne ligger i en tekstfil f.eks. som linier med skiftevis interval og navn (interval først) , kan de indlæses med

Dim data(100,2) as string
Dim a, n as integer

Open filename for input as #1
  Do while EOF(1) = False
    For a = 0 to 1   
      line input #1, data (n,a)
    next a
    n = n +1
  Loop
Close #1

Når så der skrives et ord i tekstfeltet:

  For n = 0 to 100 
    If data(n , 1) = text1.text then
      msgbox( data (n, 0)            'eller udfør din kommando
    end if
  next n

M.v.h.  Jørn
Avatar billede kabbak Professor
20. februar 2005 - 00:02 #10
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Select Case Text1.Text
Case "Resultat"
Text1.Text = Resultat
Case "Resultat2"
Text1.Text = Resultat2
' case "" og så videre"
Case Else
Text1.Text = " Variablen ikke fundet"
End Select
End If
End Sub
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