String of characters(array) to decimal value


Closed Thread
Results 1 to 21 of 21

Hybrid View

  1. #1
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223

    Default String of characters(array) to decimal value

    Hello everyone, I was wondering if there is a way to convert a character to decimal value.
    Code:
    ArrayWrite myArray, ["Hello"]
     for i=1 to 5
            dec_value =  myArray[i] ' is there a way to convert this to a decimal?
     next i
    So that I will have the following...
    1. dec_value = 72 ' H
    2. dec_value = 101 ' e
    3. dec_value = 108 ' l
    4. dec_value = 108 ' l
    5. dec_value = 111 ' o

    Thanks ,
    tacbanon

  2. #2
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,521


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    When you do myArray[0] = "H" the ASCII code for 'H' (which is 72) will be what ends up in the variable. If you want to display it as a decimal number on a LCD or UART then use the DEC modifier:
    Code:
    LCDOUT $FE, 1, DEC myArray[0]
    myArray[0] = "H"
    myArray[0] = 72
    myArray[0] = %01001000
    myArray[0] = $48

    All of the above are equal - it's just different interpretations of the same thing, in this case the decimal value 72.

    /Henrik.

  3. #3
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Hello Henrik, thank you so much for replying. Sorry for not being clear..I want the value to be use in a SELECT CASE..

    Code:
    Select Case  dec_value
    case "H"
    Serout PORTC.6, T9600, ["H", 13] 
    case "e"
    Serout PORTC.6, T9600, ["e", 13] 
    case "l"
    Serout PORTC.6, T9600, ["l", 13] 
    case "l"
    Serout PORTC.6, T9600, ["l", 13] 
    case "o"
    Serout PORTC.6, T9600, ["o", 13] 
    case "W"
    Serout PORTC.6, T9600, ["W", 13] 
    ......
    END SELECT
    Regards,
    tacbanon

  4. #4
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,521


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    I don't understand the problem...The code in your first post should work just fine and so should that in your latest post - have you actually TRIED this or are you just thinking to much ;-)

    myArray[0] = "H"

    If myArray[0] = "H" THEN...
    or
    If myArray[0] = 72 THEN...
    or
    If myArray[0] = 001000 THEN...
    or
    If myArray[0] = $48 THEN...

    Same thing as in my previous response - they are all the exact same thing just expressed in different ways.

  5. #5
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Okay I'm a little confused...the following is what I'm actually trying to make it work..
    Code:
    porta=0  :  portb=0  :  portc=0  :  portd=0
    trisa=0  :  trisb=0  :  trisc=0  :  trisd=0
    porte=0  : trise=0
    harf_reg var byte
    adres_sec var byte
    yinele var byte
    sutun_reg var byte[300]
    veri var byte
    yazi_reg var byte 
    i VAR BYTE
    x var byte
    z var byte
    y var byte
    t var byte
    q var byte
    sure var byte
    yedek var byte
    '*****************************************************************************
    myArray VAR BYTE[11]
    myArray[0]="H"     
    myArray[1]="E"
    myArray[2]="L"
    myArray[3]="L"
    myArray[4]="O"
    myArray[5]=" "
    myArray[6]="W"
    myArray[7]="O"
    myArray[8]="R"
    myArray[9]="L"
    myArray[10]="D"
    
    
    CLEAR  :  portd=255:sure=200 :GOTO oku:
    oku:
    z=11
    
    
        for i=1 to z
            
            harf_reg = myArray[i]
        
            call data_sec
            
            for y=0 to yinele
                call datalar
                sutun_reg[t]=veri  :  t=t+1
                adres_sec=adres_sec+1
            next y
        next i
    t=0
    goto gonder
    gonder:
    FOR Q=0 TO 5
        for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            
            portc=1111110:PAUSEUS sure:portc=111111
            
        next i
    
    
     for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=111101:pauseus sure:portc=111111
        next i
     for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=111011:pauseus sure:portc=111111
        next i
     
     for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=110111:pauseus sure:portc=111111
        next i
     
     for i=0 to 11
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=101111:pauseus sure:portc=111111
        next i
     
     
       
       
    t=0   
    
    
    NEXT Q
    goto kaydir
    kaydir:
        yedek=sutun_reg[0]
        for i=0 to 239
          ' sutun_reg[i]=sutun_reg[i+1]  ' this is for moving characters
        next i
          '  sutun_reg[240]=yedek
    goto gonder
    
    
    data_sec:
    select case harf_reg
    case "A"
    adres_sec=0  :  yinele=5  :  return
    case "B"
    adres_sec=6  :  yinele=5  :  return
    case "C"
    adres_sec=12  :  yinele=5  :  return
    case "D"
    adres_sec=18  :  yinele=5  :  return
    case "E"
    adres_sec=24  :  yinele=5  :  return
    case "F"
    adres_sec=30  :  yinele=5  :  return
    case "G"
    adres_sec=36  :  yinele=5  :  return
    case "H"
    adres_sec=42  :  yinele=5  :  return
    case "I"
    adres_sec=48  :  yinele=3  :  return
    case "i"
    adres_sec=52  :  yinele=3  :  return
    case "J"
    adres_sec=56  :  yinele=5  :  return
    case "K"
    adres_sec=62  :  yinele=5  :  return
    case "L"
    adres_sec=68  :  yinele=5  :  return
    case "M"
    adres_sec=74  :  yinele=5  :  return
    case "N"
    adres_sec=80  :  yinele=5  :  return
    case "O"
    adres_sec=86  :  yinele=5  :  return
    case "P"
    adres_sec=92  :  yinele=5  :  return
    case "Q"
    adres_sec=98  :  yinele=5  :  return
    case "R"
    adres_sec=104  :  yinele=5  :  return
    case "S"
    adres_sec=110  :  yinele=5  :  return
    case "T"
    adres_sec=116  :  yinele=5  :  return
    case "U"
    adres_sec=122  :  yinele=5  :  return
    case "ü"
    adres_sec=128  :  yinele=5  :  return
    case "V"
    adres_sec=134  :  yinele=5  :  return
    case "W"
    adres_sec=140  :  yinele=5  :  return
    case "X"
    adres_sec=146  :  yinele=5  :  return
    case "Y"
    adres_sec=152  :  yinele=5  :  return
    case "Z"
    adres_sec=158  :  yinele=5  :  return
    case " "
    adres_sec=164  :  yinele=5  :  return
    case "0"
    adres_sec=170  :  yinele=5  :  return
    case "1"
    adres_sec=176  :  yinele=3  :  return
    case "2"
    adres_sec=180  :  yinele=5  :  return
    case "3"
    adres_sec=186  :  yinele=5  :  return
    case "4"
    adres_sec=192  :  yinele=5  :  return
    case "5"
    adres_sec=198  :  yinele=5  :  return
    case "6"
    adres_sec=204  :  yinele=5  :  return
    case "7"
    adres_sec=210  :  yinele=5  :  return
    case "8"
    adres_sec=216  :  yinele=5  :  return
    case "9"
    adres_sec=222  :  yinele=5  :  return
    end select
    
    
    datalar:
    
    
     lookup adres_sec,[$7C,$0A,$09,$0A,$7C,0_      ;A
                       ,$7F,$49,$49,$49,$36,0_      ;B
                       ,$3E,$41,$41,$41,$22,0_      ;C
                       ,$7F,$41,$41,$41,$3E,0_      ;D
                       ,$7F,$49,$49,$49,$41,0_      ;E
                       ,$7F,$09,$09,$09,$01,0_      ;F
                       ,$3E,$41,$49,$49,$3A,0_      ;G
                       ,$7F,$08,$08,$08,$7F,0_      ;H
                       ,$41,$7F,$41,0_              ;I
                       ,$44,$7D,$44,0_              ;Ý
                       ,$20,$40,$41,$3F,$01,0_      ;J
                       ,$7F,$08,$14,$22,$41,0_      ;K
                       ,$7F,$40,$40,$40,$40,0_      ;L
                       ,$7F,$02,$04,$02,$7F,0_      ;M
                       ,$7F,$04,$08,$10,$7F,0_      ;N
                       ,$3E,$41,$41,$41,$3E,0_      ;O
                       ,$7F,$09,$09,$09,$06,0_      ;P
                       ,$3E,$41,$51,$61,$3E,0_      ;Q
                       ,$7F,$09,$19,$29,$46,0_      ;R
                       ,$26,$49,$49,$49,$32,0_      ;S
                       ,$01,$01,$7F,$01,$01,0_      ;T
                       ,$3F,$40,$40,$40,$3F,0_      ;U
                       ,$1E,$41,$01,$41,$1E,0_      ;Ü
                       ,$1F,$20,$40,$20,$1F,0_      ;V
                       ,$3F,$40,$30,$40,$3F,0_      ;W
                       ,$63,$14,$08,$14,$63,0_      ;X
                       ,$07,$08,$70,$08,$07,0_      ;Y
                       ,$61,$51,$49,$45,$43,0_      ;Z
                       ,$00,$00,$00,$00,$00,0_      ;Space
                       ,$3E,$51,$49,$45,$3E,0_      ;0
                       ,$42,$7F,$40,0_              ;1
                       ,$62,$51,$49,$45,$42,0_      ;2    
                       ,$22,$49,$49,$49,$36,0_      ;3
                       ,$18,$14,$12,$7F,$10,0_      ;4
                       ,$2F,$49,$49,$49,$31,0_      ;5
                       ,$3E,$49,$49,$49,$32,0_      ;6
                       ,$61,$11,$09,$05,$03,0_      ;7
                       ,$36,$49,$49,$49,$36,0_      ;8
                       ,$26,$49,$49,$49,$3E,0],veri ;9
    return
    I think my trouble is this part..
    Code:
     for i=1 to z
            
            harf_reg = myArray[i]
    
            call data_sec
    it produce this output (not HELLO WORLD)
    Name:  LedMatrix1.png
Views: 1062
Size:  50.7 KB
    But when I modify it to this code..
    Code:
     for i=1 to z
            
            harf_reg = 64+i
    
            call data_sec
    This is the output..
    Name:  LedMatrix2.png
Views: 971
Size:  8.0 KB

    What do you think I'm missing in the process?

    Thanks,
    tacbanon
    Last edited by tacbanon; - 10th June 2012 at 14:02.

  6. #6
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,521


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Hi,
    Try using GOSUB instead of CALL.
    Also, your FOR loop starts indexing at myArray[1] instead of myArray[0] but that's not the real problem.

    /Henrik.

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts