Patch title: CSV <-> database
Abstract:
Sample application for CSV interchange with Pliant database
File: /DataBase/index.page
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/stream/filesystembase.pli"
module "/pliant/language/os.pli"
module "/pliant/admin/file.pli"
module "/pliant/appli/file_browser.pli"
module "newcsv.pli"

var Str s := page:http_request:lang
gvar Str langue := s 0 2

var Array:Str frl
frl+="Conversion d'un fichier csv en base de donn饢 #0
frl+="Cr顴ion ou appel de la base de donn饳" #1
frl+=" Base de donn饳 : " #2
frl+="Point de montage : " #3
frl+="valider" #4
frl+="aide" #5
frl+="D飬aration d'une base de donn饳" #6
frl+="Retour" #7
frl+="Cr顴ion d'une base de donn饳 ࠰artir d'un fichier ' .csv '" #8
frl+="Fichier CSV ࠣonvertir : " #9
frl+=" d鬩miteur : " #10
frl+="Convertir" #11 
frl+="Appel d'un fichier CSV" #12
frl+="Cr顴ion d'un fichier CSV ࠰artir d'une base de donn饳" #13
frl+="Fichier CSV de sortie : " #14
frl+=" d鬩miteur : " #15
frl+="D馩nition d'un fichier cible" #16
frl+="Pour d飬arer ou appeler une Base de Donn饠on doit : " #17
frl+=" - d'une part indiquer le nom du fichier '.pdb' dans le quel elle sera stock饠[lf] en respectant la syntaxe des chemins (voir plus bas)[lf]" #18
frl+=" cas particulier : la base est stock饠dans '/pliant_data', exemple :'data:/pliant/mabase.pdb'[lf] ou dans 'pliant_security' exemple : 'security:/mabase2.pdb'[lf]" #19 
frl+=" - d'autre part (facultatif) indiquer l'emplacement virtuel de cette base dans l'arborescence 'Data'[lf][lf]" #20
frl+="On doit d馩nir le fichier '.csv' source, et indiquer son d鬩miteur (s鰡rateur)[lf] en respectant la syntaxe des chemins (voir plus bas)" #21
frl+="On doit d馩nir le fichier '.csv' cible, et indiquer son d鬩miteur (s鰡rateur)[lf] en respectant la syntaxe des chemins (voir plus bas)[lf][lf]" #22




#English Dictionary
var Array:Str enl
enl+="Conversion of a csv file to a Data Base"
enl+="Create or call the Data Base"
enl+=" Data Base : "
enl+="Mount point : "
enl+="enter"
enl+="Help ?"
enl+="Declarating a Data Base"
enl+="Back"
enl+="Creating a Data Base from a csv file"
enl+="CSV file to be converted : "
enl+=" d鬩miter : "
enl+="Convert"
enl+="Call a CSV file"
enl+="Creating a CSV file from a Data Base"
enl+="Output CSV file : "
enl+=" d鬩miter : "
enl+="Target csv file definition "
enl+="To declare or call a DataBase you must : " #17
enl+=" - first, indicate the name of a '.pdb' file in which datas will be registerd [lf] you have to follow the Pliant syntax for trees (please see below)[lf]" #18
enl+=" special case: the Database is saved in '/pliant_data', e.g. 'data:/pliant/mybase.pdb' or in 'pliant_security' e.g. 'security:/mybase2.pdb'[lf]" #19 
enl+=" - second (optional) indicate the virtual address of this base in Pliant 'Data' tree[lf]" #20
enl+="You must define the '.csv' source, and indicathe its delimiter, [lf] you have to follow the Pliant syntax for trees (please see below)[lf]" #21
enl+="You must define the '.csv' source, and indicathe its delimiter, [lf] you have to follow the Pliant syntax for trees (please see below)[lf]" #22



#Dictionnaire portuguais
ptl+="var Array:Str ptl" 
ptl+="Convers㯠de um ficheiro csv en base de dados" #0
ptl+="Cria磯 ou chamada da base de dados" #1
ptl+="Base de dados:" #2
ptl+="Ponto de montagem : " #3
ptl+="Validar" #4
ptl+="Ajuda" #5
ptl+="Declara磯 de uma base de dados" #6
ptl+="Voltar " #7
ptl+="Cria磯 de uma base de dados a partir de um ficheiro '.csv'" #8
ptl+="Ficheiro CSV a converter:" #9
ptl+="Delimitador " #10
ptl+="Converter" #11
ptl+="Chamada de um ficheiro CSV" #12
ptl+="Cria磯 de um ficheiro CSV a partir de uma base de dados" #13
ptl+=" Fichero CSV albo" #14
ptl+="Delimitador " #15
ptl+="Declara磯 de uma base de dados" #16
ptl+="Para declarar ou chamar uma Base de Dados deve-se : [lf]" #17
ptl+="- de um lado indicar o nome do ficheiro '.pdb' no qual serᠭemorisada respeitando a sintaxe dos caminhos (ver mais a baixo)[lf]" #18
ptl+="Caso particular: a base 頭emorisada em '/pliant_data', exemplo 'data:/pliant/mabse.pdb' � 'pliant_security'[lf] exemplo 'security:/mabase2.pdb'[lf]" #19
ptl+="- de outro lado (facultativo) indicar o lugar virtual dessa base na arborescence 'Data'.[lf][lf]" #20
ptl+="Deve-se definir o ficheiro'.csv' de origem e indicar o seu limite (separador) respeitando a sintaxe dos caminhos (ver mais a baixo)"#21
ptl+="Deve-se definir o ficheiro'.csv' albo e indicar o seu delimitador (separador) respeitando a sintaxe dos caminhos (ver mais a baixo)"#22



# Choix de la langue #language choice
gvar Array:Str label

if langue = "fr"
  label := frl
eif langue = "en"
  label :=enl
eif langue = "pt"
  label :=ptl
else
  label := frl

  
#############################################################################################    
title label:0

var Str fich  := "/home/michel/DataBase/sample.csv"
var Str delim := ";"
var Str delim2 := ";"
var Str newbase := "/home/michel/DataBase/essai.pdb"
var Str implantation := "/pliant/csv"
var Str sortie := "/home/michel/DataBase/out.csv"
newbase := "/home/michel/DataBase/essai.pdb"
######################"Cr顴ion ou appel de la base de donn饳"
header label:1
input label:2 newbase length 40 noeol
input label:3 implantation length 20 noeol
button label:4
  page reload_page
note label:5
  title label:6
  bold 
    text label:17 
  eol
  text label:18
  text label:19
  text label:20
  
  execute_dynamic_page "pliant:/home/michel/DataBase/chemins"+langue+".html"
  button "retour"  
    goto_backward  

##############"Cr顴ion d'une base de donn饳 ࠰artir d'un fichier ' .csv '"
header label:8
input label:9 fich length 40 noeol
input label:10 delim length 4 noeol
button label:11
  (gvar Database:CSVDatabase mabase) load newbase mount implantation
  gvar Data:CSVDatabase  madb :> mabase data
  (gvar Stream input) open fich in+safe
  to_db input delim madb
  mabase store # (鶩te le log de toutes les op鲡tions)
#  page goto_backward 1
note label:5
  title label:12 #"Appel d'un fichier CSV"
  text label:21

  execute_dynamic_page "pliant:/home/michel/DataBase/chemins"+langue+".html"
  button "retour"
    goto_backward  

#############"Cr顴ion d'un fichier CSV ࠰artir d'une base de donn饳"      
header label:13
input label:14 sortie length 40 noeol
input label:10 delim2 length 4 noeol
button label:11
  (gvar Database:CSVDatabase mabase) load newbase mount implantation
  gvar Data:CSVDatabase  madb :> mabase data  
  (gvar Stream output) open sortie out+safe
  to_csv madb delim2 output
  output close
#  page goto_backward 1
note label:5
  title label:16
  text label:22

  execute_dynamic_page "pliant:/home/michel/DataBase/chemins"+langue+".html"
  button "retour"
    goto_backward