Page 2 of 2

Posted: 2013-08-04 17:21:09
by beaver
pour l'instant je dois faire le ménage sur ma base MVS, pleine de caractères parasites qui empêchent l'ouverture du fichier xml. Ce n'est que quand j'aurai fini mon ménage et que le fichier s'ouvrira sans message "erreur d'analyse xml mal formé" que je me rendrai compte si la modif du script marche. J'avance à grand pas et vous remercie. Je vous tiendrai au courant

Posted: 2013-08-04 17:37:39
by beaver
le script ne fonctionne pas en l'état, j'ai un message "la chaine n'a pas de " final.
je récapitule le script:

// DESCRIPTION Export to Ant Movie Catalog XML database file with covers; Version 1.1
// BASED ON Yves Charrazac's / Jerome Juin's XML export script
// AUTHOR bad4u
// LANGUAGE All

MessageVersion, amcXML, Temp are String

// Changement de langues
Switch Language
Case 3 // Anglais
MessageVersion = "Please, install 6.08 version or higher. Thanks"
Case 5 // Francais
MessageVersion = "Veuillez installer la version 6.08 ou sup\'e9rieure. Merci."
End

If param.version_texte+"."+param.release_texte<6.08 Then
UserErrorMessage (MessageVersion)
End

fRep_Initial is String = fRepEnCours() + "\\"
First_fRep is String = StringLeft (fRep_Initial , 3 )

amcXML = "<?xml version=""1.0"" encoding=""iso-8859-1""?>" + cr + "<AntMovieCatalog Format=""35"" Version=""3.5.1 (2007-09-22)"" Date=""01/01/2008 00:00:00"" date_vu_avoir=""01/01/2008 00:00:00"">" + cr + " <Catalog>" + cr + " <Properties/>" + cr + " <Contents>" + cr

Debut:

HLitPremier(VIDEOTAP, "titre")
TANTQUE PAS HEnDehors(VIDEOTAP)
MAJ_Fiche:

amcXML = amcXML + " <Movie"

// Number
Temp = ""
Temp = VIDEOTAP.vicleunik
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Number=""" + Temp + """"
End

// Media Label
Temp = ""
Temp = VIDEOTAP.label
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " MediaLabel=""" + Temp + """"
End

// Media Type
Temp = ""
Temp = VIDEOTAP.TYPE
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " MediaType=""" + Temp + """"
End

// Source
HReadSeek(PROPRIET, "P1CLEUNIK", VIDEOTAP.p1cleunik)
Temp = ""
If VIDEOTAP.p1cleunik > -1 Then
Temp = PROPRIET.NOM
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Source=""" + Temp + """"
End
End

// Date
Temp = ""
Temp = DateVersChaine(VIDEOTAP.date_acquis)
// Delete the "//" on the beginning of the NEXT line, If your date format is dd.mm.yyyy instead of dd/mm/yyyy
// Temp = StringReplace (Temp , "/" , ".")
Temp = StringReplace (Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Date=""" + Temp + """"
End

// Rating
If VIDEOTAP.cote_amour > -1 Then
amcXML = amcXML + " Rating=""" + ((VIDEOTAP.cote_amour) * 2) + ".0"""
End

// Original Title
Temp = ""
Temp = VIDEOTAP.titre_orig
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " OriginalTitle=""" + Temp + """"
End

// Translated Title
Temp = ""
Temp = VIDEOTAP.titre
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " TranslatedTitle=""" + Temp + """"
End

// Director
Realisateur is String = Liste_Acteurs (VIDEOTAP.vicleunik , "VIDEO" , "REALISATEUR")
Realisateur = replace (Realisateur , RC , "; ")
Realisateur = StringReplace(Realisateur, """", """)
If Realisateur <> "" and Realisateur <> "(Nothing)" and Realisateur <> "(N\'e9ant)" Then
amcXML = amcXML + " Director=""" + Realisateur + """"
End

// Producer
Producteur is String = Liste_Acteurs (VIDEOTAP.vicleunik , "VIDEO" , "PRODUCTEUR")
Producteur = replace (Producteur , RC , "; ")
Producteur = StringReplace(Producteur, """", """)
If Producteur <> "" and Producteur <> "(Nothing)" and Producteur <> "(N\'e9ant)" Then
amcXML = amcXML + " Producer=""" + Producteur + """"
End

// Country
HReadSeek (PAYS, "P0CLEUNIK" , VIDEOTAP.p0cleunik)
Temp = ""
If VIDEOTAP.p0cleunik > -1 Then
Temp = PAYS.PAYS
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Country=""" + Temp + """"
End
End

// Genre
HReadSeek (CATEG, "CACLEUNIK", VIDEOTAP.CACLEUNIK)
Temp = ""
If VIDEOTAP.CACLEUNIK > -1 Then
Temp = CATEG.CATEGORIE
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Category=""" + Temp + """"
End
End

// Year
Temp = ""
Temp = VIDEOTAP.annee_real
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Year=""" + Temp + """"
End

// Length
Temp = ""
Temp = VIDEOTAP.duree
Temp = StringReplace(Temp, """", """)
If Temp <> "" and Temp <> "0" Then
amcXML = amcXML + " Length=""" + Temp + """"
End

// Actors
ListActHTTP is String = Liste_Acteurs (VIDEOTAP.vicleunik , "VIDEO" , "ACTEUR")
ListActHTTP = replace (ListActHTTP , RC , "; ")
ListActHTTP = StringReplace(ListActHTTP, """", """)
If ListActHTTP <> "" and ListActHTTP <> "(Nothing)" and ListActHTTP <> "(N\'e9ant)" Then
amcXML = amcXML + " Actors=""" + ListActHTTP + """"
End

// URL
Temp = ""
Temp = VIDEOTAP.Movie_URL_Value
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " URL=""" + Temp + """"
End

// Description
HReadSeek (NOTEFILM, "VICLEUNIK", VIDEOTAP.VICLEUNIK)
Temp = ""
If HTrouve() Then
Temp = NOTEFILM.NOTEFILM
Temp = StringReplace(Temp, """", """)
Temp = StringReplace(Temp, RC, "|")
If Temp <> "" Then
amcXML = amcXML + " Description=""" + Temp + """"
End
End

// Comments
Temp = ""
Temp = VIDEOTAP.TEXTE_LIBRE
Temp = StringReplace(Temp, """", """)
Temp = StringReplace(Temp, RC, "|")
If Temp <> "" Then
amcXML = amcXML + " Comments=""" + Temp + """"
End

// Videoformat
HReadSeek (F_VIDEO, "FVCLEUNIK" , VIDEOTAP.fvcleunik)
Temp = ""
If VIDEOTAP.fvcleunik > -1 Then
Temp = F_VIDEO.format_video
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " VideoFormat=""" + Temp + """"
End
End

// Audioformat
HReadSeek (SO, "SOCLEUNIK" , VIDEOTAP.socleunik)
Temp = ""
If VIDEOTAP.socleunik > -1 Then
Temp = SO.SON
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " AudioFormat=""" + Temp + """"
End
End

// Resolution
HReadSeek (F_IMAGE, "FICLEUNIK" , VIDEOTAP.ficleunik)
Temp = ""
If VIDEOTAP.ficleunik > -1 Then
Temp = F_IMAGE.FORMAT_IMAGE
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Resolution=""" + Temp + """"
End
End

// Disks
Temp = ""
Temp = VIDEOTAP.nb_disques
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Disks=""" + Temp + """"
End

// Picture
Temp = ""
Temp = VIDEOTAP.IMAGE
Temp = StringReplace(Temp, """", """)
If Temp <> "" and Temp <> "cinehome.jpg" Then
amcXML = amcXML + " Picture=""" + Temp + """"
End

// Open CustomFields element
amcXML = amcXML + ">" + cr
amcXML = amcXML + " <CustomFields"

// Add custom fields here as below

//date_vu_avoir
Temp = ""
Temp = DateVersChaine(VIDEOTAP.date_vu_avoir)
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " date_vu_avoir=""" + Temp + """"
End

// Je possede
Temp = ""
Temp = VIDEOTAP.achete
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " achete=""" + Temp + """"
End

// Close CustomFields element
amcXML = amcXML + "/>" + cr
// Close Movie element
amcXML = amcXML + " </Movie>" + cr



amcXML = StringReplace(amcXML, "; """, """")

HLitSuivant(VIDEOTAP)
End

amcXML = amcXML + " </Contents>" + cr + " </Catalog>" + cr + "</AntMovieCatalog>" + cr

fSauveTexte(fRep_Initial + "AMC_export.xml" , amcXML )

Finscript:

Posted: 2013-08-04 19:19:07
by soulsnake
Hi,

This line is wrong :

Code: Select all

Temp = StringReplace(Temp, """", """) 
Replace it by this one (remove space between & and #) :

Code: Select all

Temp = StringReplace(Temp, """", "& #34;")
Soulsnake.

Posted: 2013-08-06 18:46:06
by beaver
I'm sorry but I tried different ways and that still don't work. I think I will export my way and convert in .csv. I'm looking for something like that.
Thank's for the help

Posted: 2013-08-06 19:20:39
by soulsnake
Hi,

Try the final script with CF (Custom Fields) here:
http://mickaelvanneufville.online.fr/AM ... r_scripts/

Soulsnake.

Posted: 2013-08-07 06:34:29
by beaver
yesssss! it works! many thanks.
I had just to modify (it was my mistake) VIDEOTAP.achete by VIDEOTAP.jai. I've just an another probleme to solve: the field "jai" has 4 values: 0= non renseigné; 1= je possede; 2= je dois me procurer; 3= je ne possede pas.
I used only the value "je possede", the three others mean "je ne possede pas". I have to keep the value "1" and to modify "0,2,3" in "0". any idea? many thanks again

Posted: 2013-08-07 07:27:02
by beaver
I forgot to mention that both exportation from MVS and importation to AMC work perfectly.

Posted: 2013-08-07 13:47:25
by beaver
It's OK now.
If somebody is interested, the definitiv script to export from myvideosoft in AMC all the usual fields + fields "je possede / je ne possede pas" and "vu le (date)" is the following, with the help of Soulsnake.
You have to execute it in MVS, it was placed in MVS folder, transfer it in the "affiche" folder and execute the import in AMC in a new base where you created the customs fields. Enjoy
Many thanks to Soulsnake and bad4u.

// DESCRIPTION Export to Ant Movie Catalog XML database file with covers; Version 1.1 - Mod by soulsnake
// BASED ON Yves Charrazac's / Jerome Juin's XML export script
// AUTHOR bad4u - Mod by soulsnake
// LANGUAGE All

MessageVersion, amcXML, Temp are String

// Changement de langues
Switch Language
Case 3 // Anglais
MessageVersion = "Please, install 6.08 version or higher. Thanks"
Case 5 // Francais
MessageVersion = "Veuillez installer la version 6.08 ou sup\'e9rieure. Merci."
End

If param.version_texte+"."+param.release_texte<6.08 Then
UserErrorMessage (MessageVersion)
End

fRep_Initial is String = fRepEnCours() + "\\"
First_fRep is String = StringLeft (fRep_Initial , 3 )

amcXML = "<?xml version=""1.0"" encoding=""iso-8859-1""?>" + cr + "<AntMovieCatalog Format=""35"" Version=""3.5.1 (2007-09-22)"" Date=""01/01/2008 00:00:00"">" + cr + " <Catalog>" + cr + " <Properties/>" + cr + " <Contents>" + cr

Debut:

HLitPremier(VIDEOTAP, "titre")
TANTQUE PAS HEnDehors(VIDEOTAP)
MAJ_Fiche:

amcXML = amcXML + " <Movie"

// Number
Temp = ""
Temp = VIDEOTAP.vicleunik
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Number=""" + Temp + """"
End

// Media Label
Temp = ""
Temp = VIDEOTAP.label
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " MediaLabel=""" + Temp + """"
End

// Media Type
Temp = ""
Temp = VIDEOTAP.TYPE
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " MediaType=""" + Temp + """"
End

// Source
HReadSeek(PROPRIET, "P1CLEUNIK", VIDEOTAP.p1cleunik)
Temp = ""
If VIDEOTAP.p1cleunik > -1 Then
Temp = PROPRIET.NOM
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Source=""" + Temp + """"
End
End

// Date
Temp = ""
Temp = DateVersChaine(VIDEOTAP.date_acquis)
// Delete the "//" on the beginning of the NEXT line, If your date format is dd.mm.yyyy instead of dd/mm/yyyy
// Temp = StringReplace (Temp , "/" , ".")
Temp = StringReplace (Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Date=""" + Temp + """"
End

// Rating
If VIDEOTAP.cote_amour > -1 Then
amcXML = amcXML + " Rating=""" + ((VIDEOTAP.cote_amour) * 2) + ".0"""
End

// Original Title
Temp = ""
Temp = VIDEOTAP.titre_orig
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " OriginalTitle=""" + Temp + """"
End

// Translated Title
Temp = ""
Temp = VIDEOTAP.titre
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " TranslatedTitle=""" + Temp + """"
End

// Director
Realisateur is String = Liste_Acteurs (VIDEOTAP.vicleunik , "VIDEO" , "REALISATEUR")
Realisateur = replace (Realisateur , RC , "; ")
Realisateur = StringReplace(Realisateur, """", """)
If Realisateur <> "" and Realisateur <> "(Nothing)" and Realisateur <> "(N\'e9ant)" Then
amcXML = amcXML + " Director=""" + Realisateur + """"
End

// Producer
Producteur is String = Liste_Acteurs (VIDEOTAP.vicleunik , "VIDEO" , "PRODUCTEUR")
Producteur = replace (Producteur , RC , "; ")
Producteur = StringReplace(Producteur, """", """)
If Producteur <> "" and Producteur <> "(Nothing)" and Producteur <> "(N\'e9ant)" Then
amcXML = amcXML + " Producer=""" + Producteur + """"
End

// Country
HReadSeek (PAYS, "P0CLEUNIK" , VIDEOTAP.p0cleunik)
Temp = ""
If VIDEOTAP.p0cleunik > -1 Then
Temp = PAYS.PAYS
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Country=""" + Temp + """"
End
End

// Genre
HReadSeek (CATEG, "CACLEUNIK", VIDEOTAP.CACLEUNIK)
Temp = ""
If VIDEOTAP.CACLEUNIK > -1 Then
Temp = CATEG.CATEGORIE
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Category=""" + Temp + """"
End
End

// Year
Temp = ""
Temp = VIDEOTAP.annee_real
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Year=""" + Temp + """"
End

// Length
Temp = ""
Temp = VIDEOTAP.duree
Temp = StringReplace(Temp, """", """)
If Temp <> "" and Temp <> "0" Then
amcXML = amcXML + " Length=""" + Temp + """"
End

// Actors
ListActHTTP is String = Liste_Acteurs (VIDEOTAP.vicleunik , "VIDEO" , "ACTEUR")
ListActHTTP = replace (ListActHTTP , RC , "; ")
ListActHTTP = StringReplace(ListActHTTP, """", """)
If ListActHTTP <> "" and ListActHTTP <> "(Nothing)" and ListActHTTP <> "(N\'e9ant)" Then
amcXML = amcXML + " Actors=""" + ListActHTTP + """"
End

// URL
Temp = ""
Temp = VIDEOTAP.Movie_URL_Value
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " URL=""" + Temp + """"
End

// Description
HReadSeek (NOTEFILM, "VICLEUNIK", VIDEOTAP.VICLEUNIK)
Temp = ""
If HTrouve() Then
Temp = NOTEFILM.NOTEFILM
Temp = StringReplace(Temp, """", """)
Temp = StringReplace(Temp, RC, "|")
If Temp <> "" Then
amcXML = amcXML + " Description=""" + Temp + """"
End
End

// Comments
Temp = ""
Temp = VIDEOTAP.TEXTE_LIBRE
Temp = StringReplace(Temp, """", """)
Temp = StringReplace(Temp, RC, "|")
If Temp <> "" Then
amcXML = amcXML + " Comments=""" + Temp + """"
End

// Videoformat
HReadSeek (F_VIDEO, "FVCLEUNIK" , VIDEOTAP.fvcleunik)
Temp = ""
If VIDEOTAP.fvcleunik > -1 Then
Temp = F_VIDEO.format_video
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " VideoFormat=""" + Temp + """"
End
End

// Audioformat
HReadSeek (SO, "SOCLEUNIK" , VIDEOTAP.socleunik)
Temp = ""
If VIDEOTAP.socleunik > -1 Then
Temp = SO.SON
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " AudioFormat=""" + Temp + """"
End
End

// Resolution
HReadSeek (F_IMAGE, "FICLEUNIK" , VIDEOTAP.ficleunik)
Temp = ""
If VIDEOTAP.ficleunik > -1 Then
Temp = F_IMAGE.FORMAT_IMAGE
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Resolution=""" + Temp + """"
End
End

// Disks
Temp = ""
Temp = VIDEOTAP.nb_disques
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " Disks=""" + Temp + """"
End

// Picture
Temp = ""
Temp = VIDEOTAP.IMAGE
Temp = StringReplace(Temp, """", """)
If Temp <> "" and Temp <> "cinehome.jpg" Then
amcXML = amcXML + " Picture=""" + Temp + """"
End

// Open CustomFields element
amcXML = amcXML + ">" + cr
amcXML = amcXML + " <CustomFields"

// Add custom fields here as 2 examples below

//date_vu_avoir
Temp = ""
Temp = DateVersChaine(VIDEOTAP.date_vu_avoir)
Temp = StringReplace(Temp, """", """)
If Temp <> "" Then
amcXML = amcXML + " date_vu_avoir=""" + Temp + """"
End

// Je possede
Temp = ""
Temp = VIDEOTAP.jai
Temp = StringReplace(Temp, """", """)
If Temp <> 1 Then Temp = 0
If Temp <> "" Then
amcXML = amcXML + " jepossede=""" + Temp + """"
End

// Close CustomFields element
amcXML = amcXML + "/>" + cr
// Close Movie element
amcXML = amcXML + " </Movie>" + cr

amcXML = StringReplace(amcXML, "; """, """")

HLitSuivant(VIDEOTAP)
End

amcXML = amcXML + " </Contents>" + cr + " </Catalog>" + cr + "</AntMovieCatalog>" + cr

fSauveTexte(fRep_Initial + "AMC_export.xml" , amcXML )

Finscript:

Posted: 2013-08-07 17:28:54
by soulsnake
Great!
It works fine finally! ;)

Soulsnake.