XML/Input: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 2,776:
 
=={{header|Yabasic}}==
<lang Yabasic>// ========== routine for set code conversion ================
Use ASCII code (not Unicode). Need a Unicode-to-ASCII code conversion (not implement in this job).
 
<lang Yabasic>xml$ = "<Students>\n"
data 32, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174, 170, 32, 169, 238
data 248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168
data 183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216
data 209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 225
data 133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139
data 208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152
 
initCode = 160 : TOASCII = 0 : TOUNICODE = 1 : numCodes = 255 - initCode + 1
 
dim codes(numCodes)
 
for i = 1 to numCodes : read codes(i) : next
 
sub codeConversion(charcode, tocode)
local i
 
if tocode then
for i = 1 to numCodes
if codes(i) = charcode return i
next
else
return codes(charcode - initCode + 1)
end if
end sub
 
// ========== end routine for set code conversion ============
 
<lang Yabasic>xml$ = "<Students>\n"
xml$ = xml$ + " <Student Name=\"April\" Gender=\"F\" DateOfBirth=\"1989-01-02\" />\n"
xml$ = xml$ + " <Student Name=\"Bob\" Gender=\"M\" DateOfBirth=\"1990-03-04\" />\n"
Line 2,790 ⟶ 2,818:
tag2$ = "Name=\""
ltag = len(tag2$)
 
sub convASCII$(name$, mark$)
local p, c, lm
lm = len(mark$)
do
p = instr(name$, mark$, p)
if not p break
c = dec(mid$(name$, p + lm, 4))
c = codeConversion(c)
name$ = left$(name$, p-1) + chr$(c) + right$(name$, len(name$) - (p + lm + 4))
p = p + 1
loop
return name$
end sub
 
do
Line 2,797 ⟶ 2,841:
p = p + ltag
p2 = instr(xml$, "\"", p)
name$ = convASCII$(mid$(xml$, p, p2 - p), "&#x")
print name$
loop</lang>
672

edits