problema con un reemplazo de comillas dobles

  1. 8 weeks ago

    Hola tengo este string que leo de un archivo como el siguiente:
    <Item Id="1"Desc="SERVICIOS GRAVADOS"Price="10.0000"Qty="1"Tax="2"Code=""Comments=""dperc="0.00"damt="0"/>

    y quiero agregarle un espacio después de cada comilla porque sino el xml parser no lo pasa. Por favor no recomendar cambiar el archivo, porque no puedo cambiar el programa que genera el xml sin espacio, es cerrado.
    Así que pensé hacerlo así pero no me funcionó
    Dim f As FolderItem
    Dim stream As TextInputStream

    f = Getfolderitem(file)
    dim xml as string
    contenido=""
    If f <> Nil Then
    stream = TextInputStream.Open(f)
    xml= trim(stream.ReadAll())
    stream.Close
    End If

    olds= """"
    news=""" "
    xml = Replace(xml, olds, news)
    OutputArea.Text=xml

    no me manda error pero cuando se despliega el texto en la pantalla siguen el string con las comillas sin el espacio que deseo agregar.

    qué me recomiendan para lograrlo?

    Hola Alexis, lo que quieres es cambiar de:

    ...Code=""Comments=""dperc...

    a

    ...Code="" Comments="" dperc...

    ¿y que todo lo demás quede igual?

    Si revisas el valor de olds (por lo menos en la mac), sólo tiene un caracter y no los 2 que se esperan.

    Cambiando olds y news a lo siguiente debe funcionar:

    olds = chr(34) + chr(34)
    news = olds + " "

    también tendrías que cambiar Replace por ReplaceAll

    Según mi prueba tu código cambiaría:

    <Item Id="1"

    a

    <Item Id=" 1"

    y lo demás quedaría igual que el original.

  2. Alberto D

    Nov 28 Pre-Release Testers, Xojo Pro Answer

    Hola Alexis, lo que quieres es cambiar de:

    ...Code=""Comments=""dperc...

    a

    ...Code="" Comments="" dperc...

    ¿y que todo lo demás quede igual?

    Si revisas el valor de olds (por lo menos en la mac), sólo tiene un caracter y no los 2 que se esperan.

    Cambiando olds y news a lo siguiente debe funcionar:

    olds = chr(34) + chr(34)
    news = olds + " "

    también tendrías que cambiar Replace por ReplaceAll

    Según mi prueba tu código cambiaría:

    <Item Id="1"

    a

    <Item Id=" 1"

    y lo demás quedaría igual que el original.

  3. Muchas gracias Alberto! Funcionó bien!!!

  4. Alberto D

    Nov 28 Pre-Release Testers, Xojo Pro

    De nada Alexis, juntos vamos aprendiendo. Acabo de hacer otra prueba y también lo puedes poner así:

    olds = """"""
    news = """"" "

    Algo me acordaba de que se tenía que poner doble para representar una comilla doble. Entonces se pone " como inicio, luego """" para que se le asigne al String 2 comillas dobles y al final "

or Sign Up to reply!