Problema con un ciclo FOR - alberto-moyano - 05-03-2024
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
RE: Problema con un ciclo FOR - alberto-moyano - 05-03-2024
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"
RE: Problema con un ciclo FOR - jguardon - 05-03-2024
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
RE: Problema con un ciclo FOR - alberto-moyano - 05-03-2024
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
RE: Problema con un ciclo FOR - jguardon - 05-03-2024
Me alegra que hayas podido solucionarlo.
Saludos
|