ascii => text

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
ik wil een reeks ascii getallen zoals de onderstaande omzetten naar aan enkaar geschreven text. ik heb echter problemen met het "isoleren" van elk afzonderlijk getal. heeft iemand hier een goed scriptje voor?
vb: 65 66 67 32 105 65 68 65 97 65 32 67 66 97
 
Op welke manier krijg je die getallen binnen? Zitten die allemaal samen in één string die je dan wil gaan splitsen per getal? Haal je ze op uit een textbestand of database?
Da's echt wel relevant om de juiste oplossing te bieden...

Met vriendelijke groet,
JHx.
 
ze worden ingevoerd in een textvak, dus ze komen allemaal samen in 1 string :)
 
bekijk volgende code eens en pas ze aan naar jou behoefte...
Code:
Dim strIn As String, strOut As String, strFields() As String
strIn = txtInvoer.Text
strFields() = Split(strIn, " ")
For i = 0 To UBound(strFields)
    strOut = strOut & Chr(strFields(i))
Next
MsgBox strOut
Me.Hide

In dit voorbeeld is de naam van het tekstvak waar de getallen ingevoerd worden "txtInvoer".
Als scheidingsteken voor de getallen wordt gekeken naar spaties...
 
ik krijg een foutmelding...
ik werk met vb.net, kan het mss daar aan liggen?
 

Bijlagen

  • Clipboard02.gif
    Clipboard02.gif
    9,8 KB · Weergaven: 47
Laatst bewerkt:
In VB.NET ben ik niet zo thuis... maar in de foutmelding die je meegeeft staan de haakjes bij strFields() = Split... onderlijnd.Misschien moet je die eens gewoon weglaten. In mijn VB 6.0 werkt dat ook.
Verder vind ik het zeer merkwaardig dat je de code plaatst in de Form1_Load. Op dat ogenblik KAN er namelijk nog niets in het tekstvak staan... Logiser zou zijn dat je op je Form een knop plaatst (bvb cmdOK), en de code dan plaatst in
Code:
Private Sub cmdOK_Click()
  Dim strIn As String, strOut As String, strFields() As String
    strIn = txtInvoer.Text
    strFields = Split(strIn, " ")
    For i = 0 To UBound(strFields)
      strOut = strOut & Chr(strFields(i))
    Next
  MsgBox strOut
End Sub
 
ok, thnx, dat werkt, ik heb nu dit :)

PHP:
    Private Sub asciiToString()
        Dim strIn As String, strOut As String = "", strFields() As String, i As Integer
        strIn = txtInvoer.Text
        strFields = Split(strIn, " ")
        For i = 0 To UBound(strFields)
            strOut = strOut & Chr(strFields(i))
        Next
        MessageBox.Show(strOut)
    End Sub

ik had hem in load gestopt omdat ik ff snel een nieuw project had gemaakt om te testen of jouw script werkte, zodat ik het later zou kunnen copy pasten :)
 
o ja, ik heb nog een kleinne aanpassing gemaakt

PHP:
    Private Sub asciiToString(ByVal tekst As String, ByRef theResult As String)
        Dim strFields() As String, i As Integer
        strFields = Split(tekst, " ") : theResult = ""
        For i = 0 To UBound(strFields)
            If strFields(i) <> "" Then theResult = theResult & Chr(strFields(i)) 'die if om te voorkomen dat die "" probeert om te zetten
        Next
    End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan