SRL Archive - OSR Help

How do I separate a string?


bud_wis_er_420

2012-02-26 20:37:13

For example if I have the String 'Hello' and I want to store only the letters 'ell' into a variable. How would I do this?

Something like this I'm guessing:

TheString:= 'Hello';
StrPart := TheString[1..3];

but i think i need a for loop in there to separate the string but I don't know how to do that.

for I := 0 to High[TheString] do
TheString := TheStringArray;

Dgby714

2012-02-26 20:38:34

StringPart := Copy(TheString, 2, 3); //ell, start on 2 copy 3 characters

bud_wis_er_420

2012-02-26 20:45:30

From: Dgby714
StringPart := Copy(TheString, 2, 3); //ell, start on 2 copy 3 characters


Ok, Thx very much.

NCDS

2012-02-26 20:52:00

If you're going to be working with strings, you may find the implode and explode functions rather useful as well.

Rezozo

2012-02-26 20:54:11

I agree with DGBY as well. So no loop needed.

bud_wis_er_420

2012-03-03 20:11:26

Thanks for all your helpful posts, but can someone explain the implode and explode functions? I did some searching and all I could come up with is this.


function Implode(Glue: string; Pieces: TStringArray): string;
//Implodes strings into 1 string.

function Explode(Separator, s: string): TStringArray;
//Explodes a string into pieces.

But what is the Separator and Glue variables? What are their valid arguments?

I found this in someones script —> result := Explode(chr(10), s);
But what is chr(10)?

That's not in this list of valid character assignments, in the Simba handbook, below?

[BANANA]
UNKNOWN: 0
LBUTTON: 1
RBUTTON: 2
CANCEL: 3
MBUTTON: 4
XBUTTON1: 5
XBUTTON2: 6
BACK: 8
TAB: 9
CLEAR: 12
RETURN: 13
SHIFT: 16
CONTROL: 17
MENU: 18
PAUSE: 19
CAPITAL: 20
KANA: 21
HANGUL: 21
JUNJA: 23
FINAL: 24
HANJA: 25
KANJI: 25
ESCAPE: 27
CONVERT: 28
NONCONVERT: 29
ACCEPT: 30
MODECHANGE: 31
SPACE: 32
PRIOR: 33
NEXT: 34
END: 35
HOME: 36
LEFT: 37
UP: 38
RIGHT: 39
DOWN: 40
SELECT: 41
PRINT: 42
EXECUTE: 43
SNAPSHOT: 44
INSERT: 45
DELETE: 46
HELP: 47
0: 30
1: 31
2: 32
3: 33
4: 34
5: 35
6: 36
7: 37
8: 38
9: 39
A: 41
B: 42
C: 43
D: 44
E: 45
F: 46
G: 47
H: 48
I: 49
J: 4A
K: 4B
L: 4C
M: 4D
N: 4E
O: 4F
P: 50
Q: 51
R: 52
S: 53
T: 54
U: 55
V: 56
W: 57
X: 58
Y: 59
Z: 5A
LWIN: 5B
RWIN: 5C
APPS: 5D
SLEEP: 5F
NUMPAD0: 96
NUMPAD1: 97
NUMPAD2: 98
NUMPAD3: 99
NUMPAD4: 100
NUMPAD5: 101
NUMPAD6: 102
NUMPAD7: 103
NUMPAD8: 104
NUMPAD9: 105
MULTIPLY: 106
ADD: 107
SEPARATOR: 108
SUBTRACT: 109
DECIMAL: 110
DIVIDE: 111
F1: 112
F2: 113
F3: 114
F4: 115
F5: 116
F6: 117
F7: 118
F8: 119
F9: 120
F10: 121
F11: 122
F12: 123
F13: 124
F14: 125
F15: 126
F16: 127
F17: 128
F18: 129
F19: 130
F20: 131
F21: 132
F22: 133
F23: 134
F24: 135
NUMLOCK: 90
SCROLL: 91
LSHIFT: A0
RSHIFT: A1
LCONTROL: A2
RCONTROL: A3
LMENU: A4
RMENU: A5
BROWSER_BACK: A6
BROWSER_FORWARD: A7
BROWSER_REFRESH: A8
BROWSER_STOP: A9
BROWSER_SEARCH: AA
BROWSER_FAVORITES: AB
BROWSER_HOME: AC
VOLUME_MUTE: AD
VOLUME_DOWN: AE
VOLUME_UP: AF
MEDIA_NEXT_TRACK: B0
MEDIA_PREV_TRACK: B1
MEDIA_STOP: B2
MEDIA_PLAY_PAUSE: B3
LAUNCH_MAIL: B4
LAUNCH_MEDIA_SELECT: B5
LAUNCH_APP1: B6
LAUNCH_APP2: B7
OEM_1: BA
OEM_PLUS: BB
OEM_COMMA: BC
OEM_MINUS: BD
OEM_PERIOD: BE
OEM_2: BF
OEM_3: C0
OEM_4: DB
OEM_5: DC
OEM_6: DD
OEM_7: DE
OEM_8: DF
OEM_102: E2
PROCESSKEY: E7
ATTN: F6
CRSEL: F7
EXSEL: F8
EREOF: F9
PLAY: FA
ZOOM: FB
NONAME: FC
PA1: FD
OEM_CLEAR: FE
HIGHESTVALUE: FE
UNDEFINED: FF
[/BANANA]

I only listing this stuff just so you know I DID do some research b4 I posted and You know what I looked into.

Does anyone know where I can go to get better explanations of all of Simbas available functions?


Here my script I built to test with:

program new;
var
I: Integer;
Txtleng: LongInt;
Text: string;
Text_array: TStringArray;

begin
Text := 'Hello World';
Txtleng := Length(Text);
Writeln(inttostr(Txtleng));
SetArrayLength(Text_array, Txtleng);
Text_array := Explode(chr(10), Text);
for I := 0 to High(Text_array) do
Writeln(Text_array[I]);


Edit:

NVM, I figured it out.