80 lines
2.1 KiB
Plaintext
80 lines
2.1 KiB
Plaintext
AnidadoInicial$ = "Rosetta Code" + chr$(10) + "....rocks" + chr$(10) + "........code" + chr$(10) + "........comparison" + chr$(10) + "........wiki" + chr$(10) + "....mocks" + chr$(10) + "........trolling" + chr$(10)
|
|
print AnidadoInicial$
|
|
sangrado$ = AnidadoConSangrado$(AnidadoInicial$)
|
|
print sangrado$
|
|
anidado$ = SangradoAAnidado$(sangrado$)
|
|
print anidado$
|
|
print "Initial = Restored: ";
|
|
if AnidadoInicial$ = anidado$ then print "True" else print "False": fi
|
|
end
|
|
|
|
sub AnidadoConSangrado$ (anidado$)
|
|
local salida$, linea$, i, ind
|
|
|
|
salida$ = ""
|
|
linea$ = ""
|
|
i = 1
|
|
ind = 0
|
|
|
|
while i <= len(anidado$)
|
|
if mid$(anidado$, i, 1) = chr$(10) or mid$(anidado$, i, 1) = chr$(13) then
|
|
if linea$ <> "" then
|
|
ind = 0
|
|
while ind < len(linea$) and mid$(linea$, ind + 1, 1) = "."
|
|
ind = ind + 1
|
|
wend
|
|
salida$ = salida$ + str$(ind / 4) + " " + mid$(linea$, ind + 1) + chr$(10)
|
|
linea$ = ""
|
|
fi
|
|
else
|
|
linea$ = linea$ + mid$(anidado$, i, 1)
|
|
fi
|
|
i = i + 1
|
|
wend
|
|
|
|
if linea$ <> "" then
|
|
ind = 0
|
|
while ind < len(linea$) and mid$(linea$, ind + 1, 1) = "."
|
|
ind = ind + 1
|
|
wend
|
|
salida$ = salida$ + str$(ind / 4) + " " + mid$(linea$, ind + 1) + chr$(10)
|
|
fi
|
|
|
|
return salida$
|
|
end sub
|
|
|
|
sub SangradoAAnidado$ (sangrado$)
|
|
local salida$, linea$, i, ind, tmp$
|
|
|
|
salida$ = ""
|
|
linea$ = ""
|
|
i = 1
|
|
|
|
while i <= len(sangrado$)
|
|
if mid$(sangrado$, i, 1) = chr$(10) or mid$(sangrado$, i, 1) = chr$(13) then
|
|
if linea$ <> "" then
|
|
ind = instr(linea$, " ")
|
|
nivel = val(mid$(linea$, 1, ind - 1))
|
|
tmp$ = ""
|
|
for t = 1 to nivel * 4
|
|
tmp$ = tmp$ + "."
|
|
next t
|
|
//salida$ = salida$ + string$(nivel * 4, ".") + mid$(linea$, ind + 1) + chr$(10)
|
|
salida$ = salida$ + tmp$ + mid$(linea$, ind + 1) + chr$(10)
|
|
linea$ = ""
|
|
fi
|
|
else
|
|
linea$ = linea$ + mid$(sangrado$, i, 1)
|
|
fi
|
|
i = i + 1
|
|
wend
|
|
|
|
if linea$ <> "" then
|
|
ind = instr(linea$, " ")
|
|
nivel = val(mid$(linea$, 1, ind - 1))
|
|
salida$ = salida$ + string$(nivel * 4, ".") + mid$(linea$, ind + 1) + chr$(10)
|
|
fi
|
|
|
|
return salida$
|
|
end sub
|