Toon posts:

[u-script] Van hoofdletters naar kleine letters*

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zit met een probleem, ik werk met een script taal (u-script) die lijkt op java.
Wat ik wil is een string die uit hoofd letters en kleine letters bestaat, omvormen in alleen kleine letters.
Alleen zit er (zover ik weet) geen standaart functie in. Dus ik zal het zelf moeten deven("hoi hoi").

Ik dacht de string in een char array te gooien en zo om te zetten.
Alleen hoe om te zetten :?

Dus wie helpt mij, wat pseudo code is al goed.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Schrijf eerst maar een functie die een willekeurige char naar kleine char omzet.

Verwijderd

Is het teken een ascii character met een decimale code tussen 65 en 90? Tel er 32 bij op, en vervang het teken door het nieuwe teken

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
for blaat = 1 to lengte van de string
if string(blaat) = a then string(blaat) = A
if string(blaat) = b then string(blaat) = B
if string(blaat) = c then string(blaat) = C

daar moet je dan idd een functie van maken
die kan je dan makkelijk aanroepen

This message was sent on 100% recyclable electrons.


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:40
Als er geen standaardfunctie in die taal zit om een letter naar lcase om te zetten, moet je eens kijken naar de ASCII waardes van die letters.

Bv.
A = ASCII (65)
a = ASCII (97)
B = ASCII (66)
b = ASCII (98)

Het verschil is dus iedere keer 32

Natuurlijk moet je wel iedere keer checken of de letter in hoofdletters staat voor je de bewerking erop gaat uitvoeren... Je kunt dus checken of de ASCII waarde van die letter tsn 65 (A) en 90 (Z) is.

[ Voor 29% gewijzigd door whoami op 06-01-2003 20:35 ]

https://fgheysels.github.io/


Verwijderd

BasieP schreef op 06 January 2003 @ 20:33:
for blaat = 1 to lengte van de string
if string(blaat) = a then string(blaat) = A
if string(blaat) = b then string(blaat) = B
if string(blaat) = c then string(blaat) = C

daar moet je dan idd een functie van maken
die kan je dan makkelijk aanroepen

Zo'n fout maken we in het begin allemaal wel eens ;)
Het is wel een werkende oplossing, maar geen goede programmeer-oplossing, wat mij betreft :)

[ Voor 1% gewijzigd door Verwijderd op 06-01-2003 20:36 . Reden: +e ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 06 januari 2003 @ 20:35:

[...]

Zo'n fout maken we in het begin allemaal wel eens ;)
Het is wel een werkende oplossing, maar geen goede programmeer-oplossing, wat mij betreft :)
Het houd je wel bezig :P

Verwijderd

Topicstarter
kijk dat is het gewoon dat van die ascii code, zo logies.
Heel erg bedankt mensen, en ja die van de if had ik nog zelf ook wel kunnen verzinnen.
Wie doet de deur dicht?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Topics gaan niet op slot als ze opgelost zijn :) Misschien wil iemand hem nog na een jaar omhoogschoppen :P

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Ik zou een array maken waarin je op basis van de ascii waarde de nieuwe ascii waarde of direct de letter zet. Dan kan je ook de letters met een accent vervangen of zelfs iets als een duitse ß vervangen door andere letters. bijv @ door (a), ß door ss.
Dat array kan je dan voor de normale letters wel met een for loop vullen en de rest vul je expliciet op index waarde.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Mocht u-script toevallig UnrealScript heten, kan ik je van harte aanraden om eens hier te kijken: http://wiki.beyondunreal.com/wiki/Useful_String_Functions

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • warp
  • Registratie: Januari 2000
  • Niet online

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:49

Creepy

Tactical Espionage Splatterer

Want het grote voordeel hier is? ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:40
* whoami is ook benieuwd wat dat XML hiertoe doet....
* whoami ziet totaal geen verband, en ik denk ook niet dat dat er is.

https://fgheysels.github.io/


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Het verband is dat je in XML script blijkbaar ook content van case kan veranderen. Dat dat verder helemaal niets met de gestelde vraag te maken heeft, mja... in VB/C/etc kan het ook...

Maar ok... om uppercase -> lowercase en omgekeerd te krijgen doe je zo:
char = char xor 0x20 (converteert van upper naar lower en omgekeerd)
char = char or 0x20 (maak lowercase)
char = char and 0xDF (maak uppercase)

[ Voor 47% gewijzigd door Gerco op 07-01-2003 13:27 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Als het gewoon ASCII is, dan stel ik zoiets voor:

code:
1
2
3
4
5
6
7
for ('de gehele lengte van de string') {
  temp = ord('huidige character)' // om ascii waarde te krijgen
  if (temp >= 65 && temp <= 90) { // tussen 'A' en 'Z'
    'huidige character' = chr(temp+32);
    // op scherm zetten, opslaan, etc.
  }
}

[ Voor 14% gewijzigd door Darkvater op 07-01-2003 13:26 ]


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

of PHP? http://www.php.net/strtolower
of VB? http://www.w3schools.com/vbscript/func_lcase.asp
of Pascal? http://delphi.about.com/library/rtl/blrtlLowerCase.htm
of C++? http://www.cprogramming.com/fod/tolower.html
of ASM?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; EAX - pointer naar buffer
    mov EBX,0
:start
    mov EDX, [EAX + EBX]
    test EDX
    jz  done
    cmp EDX, 65
    jl  end
    cmp EDX, 90
    jg  end
    add EDX, 32
    mov EAX + EBX, EDX;
:end
    inc EBX
    jmp start
:done

[ Voor 1% gewijzigd door kvdveer op 07-01-2003 13:34 . Reden: bugfix ]

Localhost, sweet localhost


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Doe het dan tenminste wat korter :)
GAS:
1
2
3
4
5
6
7
8
9
10
11
12
; EAX - pointer naar buffer
    mov EBX,0
:start
    mov EDX, [EAX + EBX]
    test EDX
    jz  done
    or  EDX, 32 ; Convert to lower case
    mov EAX + EBX, EDX;
:end
    inc EBX
    jmp start
:done

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Gerco schreef op 07 January 2003 @ 14:03:
[...]
Doe het dan tenminste wat korter :)
GAS:
1
2
3
4
5
6
7
8
9
10
11
12
; EAX - pointer naar buffer
    mov EBX,0
:start
    mov EDX, [EAX + EBX]
    test EDX
    jz  done
    or  EDX, 32 ; Convert to lower case
    mov EAX + EBX, EDX;
:end
    inc EBX
    jmp start
:done
Jouw OR 32 zet alles om, ook wat niet oorspronkelijk tussen 65 en 90 zat.
Het is dus niet korter, maar andere functionaliteit.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Goodielover schreef op 07 January 2003 @ 16:44:
Jouw OR 32 zet alles om, ook wat niet oorspronkelijk tussen 65 en 90 zat.
Het is dus niet korter, maar andere functionaliteit.
Dan moet je dr maar alleen chars tussen 65 en 90 instoppen :+
Ok, ok, my bad

[ Voor 5% gewijzigd door Gerco op 08-01-2003 10:02 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Nog beter is om er alleen chars tussen de 97 en 122 in te stoppen, dan wordt je code nog compacter. :+ >:)
Pagina: 1