alberto-moyano   05-03-2024, 03:57
#1
Hola gente, le estoy dando vueltas al tema y ya me encuentro perdido, tengo la siguiente función para exportar metadados desde una base SQLite, la cuestión es así, en un textbox de un formulario estoy guadando los Id de otra tabla sepadados por espacios, puede ser en cualquier orden (21 12 8 o 2 34 21, etc.) el tema es que cuando el Id es uno solo no tengo problema con la consulta pero si son varios implento un ciclo FOR que no funciona, no me queda claro si el código que escribí esta mal o no es con un FOR como debo resolver esto, les muestro mi código

Gracias de antemano

Código:
'exportamos el archivo de metadatos para PDF libro
Public Sub ExportToMetaPDF()

  Dim s As String
  Dim f As ResultField
  Dim fb As ResultField
  Dim aFields As New String[]
  Dim bFields As New String[]
  Dim w As Integer
  Dim wb As Integer
  Dim buscar As String
  Dim buscarAutor As String
  Dim outputFile As String

  'me conceto a la base de datos
  Conn = Mod_Conn.conectar()

  buscar = "select * from metadatos where nombreArchivo like '%" & rutaNAME & "%'"

  ' Exportar el registro seleccionado
  Contenido = Conn.Exec(buscar)

  aFields.Clear
  For Each f In Contenido.Fields
    aFields.Add(f.Name)
    If Len(f.Name) > w Then
      w = Len(f.Name)
    Endif
  Next

  ' Obtener los IDs separados por espacios
  Dim ids As String[] = Split(Contenido[aFields[5]], " ")

  ' Iterar sobre los IDs y obtener la información correspondiente
  For Each id In ids
    buscarAutor = "SELECT * FROM autores WHERE id = " & id
    ContenidoAutor = Conn.Exec(buscarAutor)

    bFields.Clear
    For Each fb In ContenidoAutor.Fields
      bFields.Add(fb.Name)
      If Len(fb.Name) > wb Then
        wb = Len(fb.Name)
      Endif
    Next

    s = "" ' Inicializa la cadena vacía

    ' Agregar la información al resultado
    s &= ContenidoAutor[bFields[2]] & " " & ContenidoAutor[bFields[1]] & ", "
  Next

  ' Eliminar la coma adicional al final y cerrar la cadena
  s = Left(s, Len(s) - 2) & "},\n"

  ' trabajando con un solo Id este código funciona sin problemaas
  ' buscarAutor = "select * from autores where id = " & Contenido[aFields[5]]
  '
  ' ' Exportar el registro seleccionado
  ' ContenidoAutor = Conn.Exec(buscarAutor)
  '
  ' bFields.Clear
  ' For Each fb In ContenidoAutor.Fields
  '   bFields.Add(fb.Name)
  '   If Len(fb.Name) > wb Then
  '     wb = Len(fb.Name)
  '   Endif
  ' Next

  While Contenido.Available
    s &= "\\hypersetup" & "{" & "\n"

    If Not IsNull(Contenido[aFields[2]]) And Len(Contenido[aFields[2]]) > 0 Then
      s &= "\\XMPLangAlt" & Contenido[aFields[2]] & "\n"
    Endif
    If Not IsNull(Contenido[aFields[3]]) And Len(Contenido[aFields[3]]) > 0 Then
      s &= "\\XMPLangAlt" & Contenido[aFields[3]] & "\n"
    Endif
    If Not IsNull(Contenido[aFields[4]]) And Len(Contenido[aFields[4]]) > 0 Then
      s &= "\\XMPLangAlt" & Contenido[aFields[4]] & "\n"
    Endif

    ' s &= "pdfauthor={" & ContenidoAutor[bFields[2]] & " " & ContenidoAutor[bFields[1]] & "},\n"'

    If Not IsNull(Contenido[aFields[7]]) And Len(Contenido[aFields[7]]) > 0 Then
      s &= "pdfsubject={" & Contenido[aFields[7]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[9]]) And Len(Contenido[aFields[9]]) > 0 Then
      s &= "pdfsubtitle={" & Contenido[aFields[9]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[10]]) And Len(Contenido[aFields[10]]) > 0 Then
      s &= "pdfauthortitle={" & Contenido[aFields[10]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[11]]) And Len(Contenido[aFields[11]]) > 0 Then
      s &= "pdfdate={" & Contenido[aFields[11]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[12]]) And Len(Contenido[aFields[12]]) > 0 Then
      s &= "pdfcreationdate={" & Contenido[aFields[12]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[13]]) And Len(Contenido[aFields[13]]) > 0 Then
      s &= "pdfmoddate={" & Contenido[aFields[13]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[14]]) And Len(Contenido[aFields[14]]) > 0 Then
      s &= "pdfmetadate={" & Contenido[aFields[14]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[15]]) And Len(Contenido[aFields[15]]) > 0 Then
      s &= "pdfcopyright={" & Contenido[aFields[15]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[16]]) And Len(Contenido[aFields[16]]) > 0 Then
      s &= "pdflicenseurl={" & Contenido[aFields[16]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[17]]) And Len(Contenido[aFields[17]]) > 0 Then
      s &= "pdfcaptionwriter={" & Contenido[aFields[17]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[18]]) And Len(Contenido[aFields[18]]) > 0 Then
      s &= "pdfcontactaddress={" & Contenido[aFields[18]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[19]]) And Len(Contenido[aFields[19]]) > 0 Then
      s &= "pdfcontactcity={" & Contenido[aFields[19]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[20]]) And Len(Contenido[aFields[20]]) > 0 Then
      s &= "pdfcontactpostcode={" & Contenido[aFields[20]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[21]]) And Len(Contenido[aFields[21]]) > 0 Then
      s &= "pdfcontactcountry={" & Contenido[aFields[21]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[22]]) And Len(Contenido[aFields[22]]) > 0 Then
      s &= "pdfcontactregion={" & Contenido[aFields[22]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[23]]) And Len(Contenido[aFields[23]]) > 0 Then
      s &= "pdfcontactphone={" & Contenido[aFields[23]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[24]]) And Len(Contenido[aFields[24]]) > 0 Then
      s &= "pdfcontactemail={" & Contenido[aFields[24]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[25]]) And Len(Contenido[aFields[25]]) > 0 Then
      s &= "pdfcontacturl={" & Contenido[aFields[25]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[26]]) And Len(Contenido[aFields[26]]) > 0 Then
      s &= "pdfdocumentid={" & Contenido[aFields[26]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[27]]) And Len(Contenido[aFields[27]]) > 0 Then
      s &= "pdfpublication={" & Contenido[aFields[27]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[28]]) And Len(Contenido[aFields[28]]) > 0 Then
      s &= "pdfpublisher={" & Contenido[aFields[28]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[29]]) And Len(Contenido[aFields[29]]) > 0 Then
      s &= "pdftype={" & Contenido[aFields[29]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[30]]) And Len(Contenido[aFields[30]]) > 0 Then
      s &= "pdfpubtype={" & Contenido[aFields[30]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[31]]) And Len(Contenido[aFields[31]]) > 0 Then
      s &= "pdfvolumenum={" & Contenido[aFields[31]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[32]]) And Len(Contenido[aFields[32]]) > 0 Then
      s &= "pdfissuenum={" & Contenido[aFields[32]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[50]]) And Len(Contenido[aFields[50]]) > 0 Then
      s &= "pdfpagerange={" & Contenido[aFields[50]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[34]]) And Len(Contenido[aFields[34]]) > 0 Then
      s &= "pdfbookedition={" & Contenido[aFields[34]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[35]]) And Len(Contenido[aFields[35]]) > 0 Then
      s &= "pdfisbn={" & Contenido[aFields[35]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[36]]) And Len(Contenido[aFields[36]]) > 0 Then
      s &= "pdfissn={" & Contenido[aFields[36]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[37]]) And Len(Contenido[aFields[37]]) > 0 Then
      s &= "pdfeissn={" & Contenido[aFields[37]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[38]]) And Len(Contenido[aFields[38]]) > 0 Then
      s &= "pdfpubstatus={" & Contenido[aFields[38]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[39]]) And Len(Contenido[aFields[39]]) > 0 Then
      s &= "pdflang={" & Contenido[aFields[39]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[40]]) And Len(Contenido[aFields[40]]) > 0 Then
      s &= "pdfmetalang={" & Contenido[aFields[40]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[41]]) And Len(Contenido[aFields[41]]) > 0 Then
      s &= "pdfbaseurl={" & Contenido[aFields[41]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[42]]) And Len(Contenido[aFields[42]]) > 0 Then
      s &= "pdfurl={" & Contenido[aFields[42]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[43]]) And Len(Contenido[aFields[43]]) > 0 Then
      s &= "pdfdoi={" & Contenido[aFields[43]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[44]]) And Len(Contenido[aFields[44]]) > 0 Then
      s &= "pdfrendition={" & Contenido[aFields[44]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[45]]) And Len(Contenido[aFields[45]]) > 0 Then
      s &= "pdfidentifier={" & Contenido[aFields[45]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[46]]) And Len(Contenido[aFields[46]]) > 0 Then
      s &= "pdfx={" & Contenido[aFields[46]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[47]]) And Len(Contenido[aFields[47]]) > 0 Then
      s &= "pdfversionid={" & Contenido[aFields[47]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[57]]) And Len(Contenido[aFields[57]]) > 0 Then
      s &= "pdfkeywords={" & Contenido[aFields[57]] & "},\n"
    Endif
    If Not IsNull(Contenido[aFields[61]]) And Len(Contenido[aFields[61]]) > 0 Then
      s &= "pdfformato={" & Contenido[aFields[61]] & "},\n"
    Endif

    ' el titulo del libro es campo obligatorio por eso no tiene condicional
   s &= "pdftitle={" & Contenido[aFields[84]] & "},\n"

    s &= "pdfcreator={gbTeXpublisher}" & ",\n"
    s &= "pdfproducer={Ecosistema de LaTeX}" & ",\n"
    s &= "unicode=true" & ",\n"
    s &= "bookmarks=true" & ",\n"
    s &= "pdfdisplaydoctitle=true" & ",\n"
    s &= "pdfnewwindow=true" & "\n"
    s &= "}" & "\n"

    Contenido.MoveNext
  Wend

  ' Establece la ruta y el nombre del archivo de salida
  outputFile = File.Dir(TextBox1.Text) &/ "files" &/ "gbTeXmeta-" & File.BaseName(TextBox1.Text) & ".tex"

  ' Guarda el contenido acumulado en un solo archivo
  File.Save(outputFile, s)

  Conn.Close

End
Última modificación: 05-03-2024, 04:04 por alberto-moyano.
alberto-moyano   05-03-2024, 15:31
#2
Indagando más, creo que el problema viene por el lado de que estoy haciendo una consulta a 2 tablas diferentes de la base de datos, he cerrado la conexion para la segunda consulta, pero el error persiste, he ordenado el código para obtener una depuración más limpia y ahí me entero que no puedo acceder al identificador id de la tabla autores

Código:
 'me conceto a la base de datos
  Conn = Mod_Conn.conectar()
  buscar = "select * from metadatos where nombreArchivo like '%" & rutaNAME & "%'"
  buscarAutor = "SELECT * FROM autores WHERE id = " & id

  ' Exportar el registro seleccionado
  Contenido = Conn.Exec(buscar)
  ContenidoAutor = Conn.Exec(buscarAutor)

  aFields.Clear
  For Each f In Contenido.Fields
    aFields.Add(f.Name)
    If Len(f.Name) > w Then
      w = Len(f.Name)
    Endif
  Next

  ' Obtener los IDs separados por espacios
  Dim ids As String[] = Split(Contenido[aFields[5]], " ")

  ' Iterar sobre los IDs y obtener la información correspondiente
  For Each id In ids
    bFields.Clear
    For Each fb In ContenidoAutor.Fields
      bFields.Add(fb.Name)
      If Len(fb.Name) > wb Then
        wb = Len(fb.Name)
      Endif
    Next

    s = "" ' Inicializa la cadena vacía

    ' Agregar la información al resultado
    s &= ContenidoAutor[bFields[2]] & " " & ContenidoAutor[bFields[1]] & ", "
  Next

  ' Eliminar la coma adicional al final y cerrar la cadena
  s = "pdfauthor={" & Left(s, Len(s) - 2) & "},\n"
jguardon   05-03-2024, 19:21
#3
Hola

Así, a bote pronto, lo que veo es que estás haciendo una consulta buscarAutor que incluye una variable 'id' que no veo que esté inicializada en ese momento.

Qué valor tiene exactamente id cuando haces el Conn.Exec() ? De hecho, esa consulta sólo puede devolver un registro (suponiendo que el campo sea único), pero veo que luego intentas iterar en un bucle For...Next usando la misma variable que oculta la primera con el mismo nombre.

Tampoco entiendo la comparación de longitud de caracteres con las variables w y wb ni para qué sirve. No sé, quizás lo que intentas hacer se pueda resolver únicamente con consultas más elaboradas a la base de datos, pero sin saber la estructura y lo que necesitas obtener, es bastante difícil echarte una mano.

Si nos proporcionas un esquema de las base de datos y el resultado que necesitas obtener, quizá se pueda solucionar de alguna manera.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
alberto-moyano   05-03-2024, 19:42
#4
Hola Jguardon

Tienes razón me falto inicializar la variable, el código funciona, tenia errores principalmente de concatenamiento, el código quedó así

Código:
'exportamos el archivo metadatos para PDF libro
Public Sub ExportToMetaPDF()

  Dim s As String
  Dim sb As String
  Dim f As ResultField
  Dim fb As ResultField
  Dim aFields As New String[]
  Dim bFields As New String[]
  Dim w As Integer
  Dim wb As Integer
  Dim buscar As String
  Dim buscarAutor As String
  Dim outputFile As String
  Dim id As Integer

  'me conceto a la base de datos
  Conn = Mod_Conn.conectar()

  ' Exportamos los registros seleccionados
  buscar = "select * from metadatos where nombreArchivo like '%" & rutaNAME & "%'"
  Contenido = Conn.Exec(buscar)

  aFields.Clear
  For Each f In Contenido.Fields
    aFields.Add(f.Name)
    If Len(f.Name) > w Then
      w = Len(f.Name)
    Endif
  Next

  Dim ids As String[] = Split(Contenido[aFields[5]], " ")

  ' Inicializa la cadena vacía
  sb = ""

  ' Iterar sobre los IDs y obtener la información correspondiente
  For Each id In ids
    ' Establecer el valor de 'id' antes de ejecutar la consulta
    buscarAutor = "SELECT * FROM autores WHERE id = " & id
    ContenidoAutor = Conn.Exec(buscarAutor)

    bFields.Clear
    For Each fb In ContenidoAutor.Fields
      bFields.Add(fb.Name)
      If Len(fb.Name) > wb Then
        wb = Len(fb.Name)
      Endif
    Next

    ' Agregar la información al resultado
    sb &= ContenidoAutor[bFields[2]] & " " & ContenidoAutor[bFields[1]] & ", "
  Next

  ' Eliminar la coma adicional al final y cerrar la cadena
  sb = Left(sb, Len(sb) - 2)

  s = "" ' Inicializa vacía la cadena efinitiva

  While Contenido.Available
    s &= "\\hypersetup" & "{" & "\n"

    s &= "pdfauthor={" & sb & "},\n"

    If Not IsNull(Contenido[aFields[2]]) And Len(Contenido[aFields[2]]) > 0 Then
      s &= "\\XMPLangAlt" & Contenido[aFields[2]] & "\n"
    Endif
    If Not IsNull(Contenido[aFields[3]]) And Len(Contenido[aFields[3]]) > 0 Then
      s &= "\\XMPLangAlt" & Contenido[aFields[3]] & "\n"
    Endif
    If Not IsNull(Contenido[aFields[4]]) And Len(Contenido[aFields[4]]) > 0 Then
      s &= "\\XMPLangAlt" & Contenido[aFields[4]] & "\n"
    Endif

    If Not IsNull(Contenido[aFields[7]]) And Len(Contenido[aFields[7]]) > 0 Then
      s &= "pdfsubject={" & Contenido[aFields[7]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[9]]) And Len(Contenido[aFields[9]]) > 0 Then
      s &= "pdfsubtitle={" & Contenido[aFields[9]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[10]]) And Len(Contenido[aFields[10]]) > 0 Then
      s &= "pdfauthortitle={" & Contenido[aFields[10]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[11]]) And Len(Contenido[aFields[11]]) > 0 Then
      s &= "pdfdate={" & Contenido[aFields[11]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[12]]) And Len(Contenido[aFields[12]]) > 0 Then
      s &= "pdfcreationdate={" & Contenido[aFields[12]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[13]]) And Len(Contenido[aFields[13]]) > 0 Then
      s &= "pdfmoddate={" & Contenido[aFields[13]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[14]]) And Len(Contenido[aFields[14]]) > 0 Then
      s &= "pdfmetadate={" & Contenido[aFields[14]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[15]]) And Len(Contenido[aFields[15]]) > 0 Then
      s &= "pdfcopyright={" & Contenido[aFields[15]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[16]]) And Len(Contenido[aFields[16]]) > 0 Then
      s &= "pdflicenseurl={" & Contenido[aFields[16]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[17]]) And Len(Contenido[aFields[17]]) > 0 Then
      s &= "pdfcaptionwriter={" & Contenido[aFields[17]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[18]]) And Len(Contenido[aFields[18]]) > 0 Then
      s &= "pdfcontactaddress={" & Contenido[aFields[18]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[19]]) And Len(Contenido[aFields[19]]) > 0 Then
      s &= "pdfcontactcity={" & Contenido[aFields[19]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[20]]) And Len(Contenido[aFields[20]]) > 0 Then
      s &= "pdfcontactpostcode={" & Contenido[aFields[20]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[21]]) And Len(Contenido[aFields[21]]) > 0 Then
      s &= "pdfcontactcountry={" & Contenido[aFields[21]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[22]]) And Len(Contenido[aFields[22]]) > 0 Then
      s &= "pdfcontactregion={" & Contenido[aFields[22]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[23]]) And Len(Contenido[aFields[23]]) > 0 Then
      s &= "pdfcontactphone={" & Contenido[aFields[23]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[24]]) And Len(Contenido[aFields[24]]) > 0 Then
      s &= "pdfcontactemail={" & Contenido[aFields[24]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[25]]) And Len(Contenido[aFields[25]]) > 0 Then
      s &= "pdfcontacturl={" & Contenido[aFields[25]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[26]]) And Len(Contenido[aFields[26]]) > 0 Then
      s &= "pdfdocumentid={" & Contenido[aFields[26]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[27]]) And Len(Contenido[aFields[27]]) > 0 Then
      s &= "pdfpublication={" & Contenido[aFields[27]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[28]]) And Len(Contenido[aFields[28]]) > 0 Then
      s &= "pdfpublisher={" & Contenido[aFields[28]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[29]]) And Len(Contenido[aFields[29]]) > 0 Then
      s &= "pdftype={" & Contenido[aFields[29]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[30]]) And Len(Contenido[aFields[30]]) > 0 Then
      s &= "pdfpubtype={" & Contenido[aFields[30]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[31]]) And Len(Contenido[aFields[31]]) > 0 Then
      s &= "pdfvolumenum={" & Contenido[aFields[31]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[32]]) And Len(Contenido[aFields[32]]) > 0 Then
      s &= "pdfissuenum={" & Contenido[aFields[32]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[50]]) And Len(Contenido[aFields[50]]) > 0 Then
      s &= "pdfpagerange={" & Contenido[aFields[50]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[34]]) And Len(Contenido[aFields[34]]) > 0 Then
      s &= "pdfbookedition={" & Contenido[aFields[34]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[35]]) And Len(Contenido[aFields[35]]) > 0 Then
      s &= "pdfisbn={" & Contenido[aFields[35]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[36]]) And Len(Contenido[aFields[36]]) > 0 Then
      s &= "pdfissn={" & Contenido[aFields[36]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[37]]) And Len(Contenido[aFields[37]]) > 0 Then
      s &= "pdfeissn={" & Contenido[aFields[37]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[38]]) And Len(Contenido[aFields[38]]) > 0 Then
      s &= "pdfpubstatus={" & Contenido[aFields[38]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[39]]) And Len(Contenido[aFields[39]]) > 0 Then
      s &= "pdflang={" & Contenido[aFields[39]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[40]]) And Len(Contenido[aFields[40]]) > 0 Then
      s &= "pdfmetalang={" & Contenido[aFields[40]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[41]]) And Len(Contenido[aFields[41]]) > 0 Then
      s &= "pdfbaseurl={" & Contenido[aFields[41]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[42]]) And Len(Contenido[aFields[42]]) > 0 Then
      s &= "pdfurl={" & Contenido[aFields[42]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[43]]) And Len(Contenido[aFields[43]]) > 0 Then
      s &= "pdfdoi={" & Contenido[aFields[43]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[44]]) And Len(Contenido[aFields[44]]) > 0 Then
      s &= "pdfrendition={" & Contenido[aFields[44]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[45]]) And Len(Contenido[aFields[45]]) > 0 Then
      s &= "pdfidentifier={" & Contenido[aFields[45]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[46]]) And Len(Contenido[aFields[46]]) > 0 Then
      s &= "pdfx={" & Contenido[aFields[46]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[47]]) And Len(Contenido[aFields[47]]) > 0 Then
      s &= "pdfversionid={" & Contenido[aFields[47]] & "},\n"
    Endif

    If Not IsNull(Contenido[aFields[57]]) And Len(Contenido[aFields[57]]) > 0 Then
      s &= "pdfkeywords={" & Contenido[aFields[57]] & "},\n"
    Endif
    If Not IsNull(Contenido[aFields[61]]) And Len(Contenido[aFields[61]]) > 0 Then
      s &= "pdfformato={" & Contenido[aFields[61]] & "},\n"
    Endif

    ' 'el titulo del libro es campo obligatorio
    s &= "pdftitle={" & Contenido[aFields[84]] & "},\n"
    s &= "pdfcreator={gbTeXpublisher}" & ",\n"
    s &= "pdfproducer={Ecosistema de LaTeX}" & ",\n"
    s &= "unicode=true" & ",\n"
    s &= "bookmarks=true" & ",\n"
    s &= "pdfdisplaydoctitle=true" & ",\n"
    s &= "pdfnewwindow=true" & "\n"
    s &= "}" & "\n"

    Contenido.MoveNext
  Wend

  ' Establece la ruta y el nombre del archivo de salida
  outputFile = File.Dir(TextBox1.Text) &/ "files" &/ "gbTeXmeta-" & File.BaseName(TextBox1.Text) & ".tex"

  ' Guarda el contenido acumulado en un solo archivo
  File.Save(outputFile, s)

  Conn.Close

End
jguardon   05-03-2024, 21:22
#5
Me alegra que hayas podido solucionarlo.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.