Menu principal

News
C.V.
Contact
Archives

Designed by:
SiteGround web hosting Joomla Templates
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 )
 
Dump MySql en RUBY
É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 :
gem install rubyzip
 
et 
 
 
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