|
Envoi de fichier par FTP en RUBY |
|
Écrit par DOTNET
|
|
02-05-2008 |
|
Ce code source vous permettra de poster une série de fichiers sur un serveur FTP. ne pas oublier : require 'net/ftp' #sDossier_ftp = "test2" |
#oAllFiles = tableau des fichiers à uploader |
#sServer = adresse du serveur : ftpperso.free.fr |
#sLogin = login de connexion : d.durant |
#sPass = mot de passe de connexion : xxxxxx |
|
def putDossierFtp( sDossier_ftp, oAllFiles, sServer, sLogin, sPass ) |
|
#connexion au ftp |
oFtp = Net::FTP::new( sServer ) |
oFtp.login( sLogin, sPass ) |
|
#création du répertoire de base |
begin |
oFtp.mkdir( sDossier_ftp ) |
rescue |
#si le répertoire existe déjà |
end |
oFtp.chdir( sDossier_ftp ) |
|
oAllFiles.each{ |sFile| |
oFtp.putbinaryfile( sFile ) |
} |
|
oFtp.close |
end |
|
|
Dernière mise à jour : ( 12-06-2008 )
|
|
|
Écrit par DOTNET
|
|
02-05-2008 |
|
Ce code source vous permettra de dumper une base MySql vers un fichier. Télécharger : http://www.tmtm.org/en/ruby/mysql/ruby-mysql-0.2.6.tar.gz Décompresser puis lancer install.rb
Ne pas oublier : require 'mysql'
#sFichier_sql = "C:\\Documents and Settings\\Glukose1\\Mes documents\\dump.sql" |
#sBDD_server = "localhost" |
#sBDD_base = "ma_base" |
#sBDD_login = "root" |
#sBDD_pass = "" |
#bDropExist = true |
|
def dumpMysqlTableToFile( sFichier_sql, sBDD_server, sBDD_base, sBDD_login, sBDD_pass, bDropExist ) |
|
#connection à la BDD |
oBDD = Mysql::new( sBDD_server, sBDD_login, sBDD_pass, sBDD_base ) |
|
#pour toutes les tables de la BDD |
sR = "\n" |
sFichier_data = "-- From RUBY to hidalgoemmanuel.info" |
oTables = oBDD.list_tables |
oTables.each do |sTable| |
sFichier_data += "#{sR}#{sR}-- table : `#{sTable}`#{sR}" |
if( bDropExist ) |
sFichier_data += "#{sR}DROP TABLE IF EXISTS `#{sTable}`;#{sR}" |
end |
|
#récupére les informations sur la création de la table |
oRes = oBDD.query( "SHOW CREATE TABLE `#{sTable}`" ) |
oRes.each do |oRow| |
sFichier_data += oRow[ 1 ] |
end |
sFichier_data += ";#{sR}#{sR}" |
|
#récupére toutes les colonnes de la table |
sAllFields = "" |
oColRes = oBDD.query( "SHOW COLUMNS FROM `#{sTable}`" ) |
iNbrCol = 0 |
oColRes.each do |oRow| |
sAllFields += "`" + oRow[ 0 ] + "`, " |
iNbrCol += 1 |
end |
sAllFields = sAllFields[ 0, sAllFields.length - 2 ] |
|
#pour tous les enregistrements de la table |
oRegsRes = oBDD.query( "SELECT #{sAllFields} FROM `#{sTable}`" ) |
sInsertFields = "" |
oRegsRes.each do |oValRow| |
|
sInsertFields += "#{sR}INSERT INTO `#{sTable}` ( #{sAllFields} ) VALUES" |
|
bFirst = true |
sLine = "," |
if( bFirst ) |
sLine = "" |
end |
|
sLine += "#{sR}( " |
for n in (0..iNbrCol - 1) |
|
#remplace les \ par des \\ |
oValRow[ n ].gsub!(/\\/, "\\\\\\") |
|
sLine += "\"" + oValRow[ n ] + "\", " |
end |
sLine = sLine[ 0, sLine.length - 2 ] |
sInsertFields += sLine + " );" |
if( bFirst ) |
bFirst = false |
end |
end |
sFichier_data += sInsertFields |
end |
|
#écriture du fichier sql |
oFile = File.open( sFichier_sql, "w" ) |
oFile.write( sFichier_data ) |
oFile.close |
|
oBDD.close |
end |
|
|
Dernière mise à jour : ( 12-06-2008 )
|
|
|
Compression ZIP de repertoire en RUBY |
|
Écrit par DOTNET
|
|
02-05-2008 |
|
Ce code source vous permettra de compresser un répertoire vers un fichier ZIP. La fonction renvoie l'ensemble des fichiers présents dans le répertoire cible, pour palier au problème de cache. Ne pas oublier : require 'zip/zip' require 'zip/zipfilesystem' require 'find'
#sDossier_save = "C:\\Documents and Settings\\Glukose1\\Mes documents\\mon_dossier\\" |
#sFichier_zip = "C:\\Documents and Settings\\Glukose1\\Mes documents\\temp\\backup.zip" |
|
def cmpFolderOnZip( sDossier_save, sFichier_zip ) |
|
#si le fichier existe, alors le supprimer |
if( FileTest.exist?( sFichier_zip ) ) |
File.delete( sFichier_zip ) |
end |
|
#mémorise les fichiers présents dans le répertoire avant la création du zip |
oAllFiles = Array.new |
sPathZip = File.dirname( sFichier_zip ) |
Find.find( sPathZip ){ |sRes_find| |
if( not FileTest.directory?( sRes_find ) ) |
oAllFiles.push( sRes_find ) |
end |
} |
oAllFiles.push( sFichier_zip ) |
|
Zip::ZipFile.open( sFichier_zip, Zip::ZipFile::CREATE ){ |zipfile| |
Find.find( sDossier_save ){ |sRes_find| |
|
#récupére le chemin relatif pour le zip |
sDossier_base = sRes_find[ sDossier_save.length, sRes_find.length ] |
if( sDossier_base != "" ) |
#si c un dossier |
if( FileTest.directory?( sRes_find ) ) |
zipfile.dir.mkdir( sDossier_base ) |
else |
zipfile.file.open( sDossier_base, 'w' ){ |f| |
f.write( File.open( sRes_find, 'rb' ).read ) |
} |
end |
end |
} |
zipfile.close |
} |
|
return oAllFiles |
end |
|
|
Dernière mise à jour : ( 04-08-2008 )
|
|
|
|
<< Début < Précédente 1 2 3 Suivante > Fin >>
|
| Résultats 5 - 8 sur 11 |