Accueil > > > ACCÉS BINAIRE : SPLITTEUR DE FICHIERS EN VB.NET
ACCÉS BINAIRE : SPLITTEUR DE FICHIERS EN VB.NET
Information sur la source
Description
Voila, d'habitude j'essaye de ne pas mettre de projets mais juste des procédures ou fonctions, mais apres une petit prise de tete de 20mn sur comment j'allais le présenter, j'ai abandonner pour finalement mettre la beta 1 du projet (le design laissera comprendre à lui seul pkoi "beta 1" lol). Il y a un .reg qui montre les lignes à écrire pour ajouter le prog au menu contextuel (ceci en prenant en compte que le .exe est copié dans le dossier Winnt/Windows de votre system) ,ce pour ne pas mettre le setup. J'ai essayer de commenter le code, qui est assez simple mais parfois peut etre un peu fouilli... je repondrais à vos questions avec joie si vous ne comprenez pas qqc . Si il reste un bug, je m'en excuse, les tests de ses propres applis sont toujours insufisants selon mon patron... :) Prevenez moi si vous en detectez un svp (vous pouvez gueuler si vous voulez) UPDATE : et ben dis donc....pendant + de 6 mois j'ai laisser une version betement bugger qui "desplittait" mal... un "-1" mal placé qui m'oblige à m'excuser...
Source
- Imports System.IO
- Imports System
- Imports Microsoft.Win32
-
-
- Public Class Form1
- Inherits System.Windows.Forms.Form
-
-
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim args As String
- If hb_inside(Environment.CommandLine, "Bpath ", " Epath") <> "" Then
- args = hb_inside(Environment.CommandLine, "Bpath ", " Epath") 'on check si les arguments contiennent qqc entre Bpath et Epath (ne s'executera que si un fichier est appelé par le menu contextuel, et si vous avez lancer le .reg), si c'est le cas
- Else
- If Environment.GetCommandLineArgs.GetUpperBound(0) >= 1 Then 'si ce n'est pas le cas, on regarde si il y a + de 1 ligne d'arguments
- If IO.File.Exists(Environment.GetCommandLineArgs(1)) Then 'si oui on regarde si la deuxieme ligne est un fichier (ne se passera que si vous glissez un fichier sur le .exe
- args = Environment.GetCommandLineArgs(1)
- End If
- End If
- End If
-
- If args <> "" Then 'si on a un fichier sur lequel travailler dans les arguments :
- If IO.File.Exists(args) Then 'on check si le fichier existe
-
- If LCase(Mid(args, Len(args) - 3, 4)) = ".hbs" Then 'on check si c'est un fichier .hbs (splitté)
- 'si oui alors :
- Dim chemin1 As String = args
- Dim nbrfile As Integer = get_nbrfile(chemin1) 'on appele la fonction get_nbrfile qui renvoie le nbre de fichiers splitté du groupe HBS
- Dim temp As String
- temp = Mid(chemin1, 1, Len(chemin1) - 4) 'ceci renvoie le nom de fichier d'origine sans le .hbs
- Dim chemin2(nbrfile) As String 'on creer un tableau à une dimension dont le nbre de cellules est = au nbre de fichiers hbs + 1 (les cellules debutent à 0)
- Dim i As Integer
- For i = 1 To nbrfile
- chemin2(i) = Replace(chemin1, get_nbrcurrentfile(chemin1) & Mid(chemin1, InStrRev(chemin1, "_")), i.ToString & Mid(chemin1, InStrRev(chemin1, "_"))) 'on place les chemins de touts les fichiers splitté grace a cette boucle dans laquel on va remplacer le numero du fichier par tts les numeros du groupe (pas clair...ouais bah...)
- Next
- Dim cheminfin As String = Mid(temp, 1, InStrRev(temp, ".") - 1)
- 'on propose le choix du nom de fichiers à l'utilisateur
- sf1.Title = "Enregistrer le fichier sous"
- sf1.Filter = "*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1) & "|*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1)
- sf1.FileName = Mid(cheminfin, InStrRev(cheminfin, "\") + 1, Len(cheminfin) - InStrRev(cheminfin, "\"))
- sf1.ShowDialog()
- If sf1.FileName = "" Then Exit Sub
- pathsource2.Text = args
-
-
- 'On affiche le nbre de fichiers et la taille du fichier a despliter:
- lblnbrfile.Text = "Nombre de fichiers .hbs :" & get_nbrfile(pathsource2.Text)
- lbllngfiles.Text = "Taille des fichiers .hbs :" & (FileLen(pathsource2.Text) / 1024).ToString & " Ko (" & FileLen(pathsource2.Text) & " octets )"
- lbllnglfile.Text = "Taille du dernier fichier .hbs :" & (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")) / 1024).ToString & " Ko (" & FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text) & "_")).ToString & " octets)"
- Dim tailledesplit As Long = (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_"))))
- Dim lentaille As Integer = tailledesplit.ToString.Length
- Select Case lentaille
- Case Is <= 3
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit.ToString & " Octets"
- Case Is > 3
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit / 1024.ToString & " Ko (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
- Case Is > 6
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & (tailledesplit / 1024) / 1024.ToString & " Mo (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
- Case Is > 9
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & ((tailledesplit / 1024) / 1024) / 1024.ToString & " Go (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
- End Select
-
- unsplit(nbrfile, chemin2, sf1.FileName) 'on lance la procedure unsplit qui specifie le nbre de fichiers, le tableau contenant les chemins des fichiers du groupe HBS et le chemin de fichier de sortie
- TabControl1.SelectedTab = Tab2
-
- Else
- 'si ce n'est pas un fichier .hbs :
- pathsource.Text = args
-
- 'On calcul la taille du fichier sources et des "futurs" fichiers .hbs selon la valeur de nbrsplit
- Dim lnginit As Long = FileLen(pathsource.Text)
- Dim lngsplit As Long = lnginit / nbrsplit.Value
- Dim lnglastsplit As Long
- If lngsplit < CDec(lnginit / nbrsplit.Value) Then lngsplit += 1
- lnglastsplit = lnginit - (lngsplit * (nbrsplit.Value - 1))
-
- Dim taillesource As Long = FileLen(pathsource.Text)
- Dim lentaille As Integer = taillesource.ToString.Length
-
- 'Calcul la taille du fichier source et l'affiche
- Select Case lentaille
- Case Is <= 3
- lbllngsource.Text = "Taille du fichier à spliter :" & taillesource.ToString & " Octets"
- Case Is > 3
- lbllngsource.Text = "Taille du fichier à spliter :" & taillesource / 1024.ToString & " Ko (" & taillesource.ToString & " Octets)"
- Case Is > 6
- lbllngsource.Text = "Taille du fichier à spliter :" & (taillesource / 1024) / 1024.ToString & " Mo (" & taillesource.ToString & " Octets)"
- Case Is > 9
- lbllngsource.Text = "Taille du fichier à spliter :" & ((taillesource / 1024) / 1024) / 1024.ToString & " Go (" & taillesource.ToString & " Octets)"
- End Select
- 'affiche la taille des "futurs" fichiers splittés
- lngfiles.Text = "Tailles des fichiers splittés: " & lngsplit.ToString
- lnglfile.Text = "Taille du dernier fichier splitté : " & lnglastsplit.ToString
- End If
- End If
- End If
- End Sub
-
- Private Sub split(ByVal nbrfile As Integer, ByVal chemin1 As String)
- Dim lnginit As Long
- Dim lngsplit As Long
- Dim lnglastsplit As Long
- Dim worktime As Long = Environment.TickCount 'on garde la valeur du tickcount (qui renvoie le nbre de millisecondes ecoulées depuis le demarrage de windows) pour calculer le temps d'execution de la procédure
- Dim hb As New IO.BinaryReader(IO.File.OpenRead(chemin1)) 'on defini donc hb comme "binaryreader" , et on y ouvre le chemin contenu dans la string chemin1
- Dim file_a(FileLen(chemin1)) As Byte 'on crée un tableau de byte donc le nbre de cellules est egale à la taille du fichiers en octets
- Dim i As Integer
-
- hb.BaseStream.Read(file_a, 0, FileLen(chemin1)) 'on lit le fichier dans les tableau teststr
-
- 'on calcul la tailles des fichiers .hbs selon le nbre de splits demandés
- lnginit = FileLen(chemin1)
- lngsplit = lnginit / nbrfile
- If lngsplit > CDec(lnginit / nbrfile) Then lngsplit += 1
- lnglastsplit = lnginit - (lngsplit * (nbrfile - 1))
-
- 'ecriture des fichiers .hbs, sauf le dernier qui n'aura surement pas la meme taille :
- For i = 0 To nbrfile - 2
- Dim hbwrite As New IO.BinaryWriter(IO.File.OpenWrite(chemin1 & "." & (i + 1).ToString & "_" & nbrfile.ToString & ".hbs"))
- hbwrite.BaseStream.Write(file_a, (i * lngsplit), lngsplit)
- hbwrite.Close()
- hbwrite = Nothing
- Application.DoEvents()
- Next i
-
- 'ecriture maintenant du dernier fichiers hbs, qui doit faire qq octets de moins que les autres, selon la taille du fichier source
- Dim hbwrite2 As New IO.BinaryWriter(IO.File.OpenWrite(chemin1 & "." & (i + 1).ToString & "_" & nbrfile.ToString & ".hbs"))
- hbwrite2.BaseStream.Write(file_a, ((nbrfile - 1) * lngsplit), lnglastsplit)
- hbwrite2.Close()
-
- Dim splittm As String = ((CLng(Environment.TickCount) - worktime) / 1000).ToString & " secondes"
- MsgBox("Le fichier " & chemin1 & " a été splitté avec succés en " & splittm)
- End Sub
-
- Private Sub unsplit(ByVal nbrfile As Integer, ByVal chemin2() As String, ByVal chemin1 As String)
- Dim i As Integer
- Dim lngsplit As Long
- Dim file_A() As Byte 'on crée un tableau de byte donc le nbre de cellules est egale à la taille du fichiers en octets
- Dim n As Long
- Dim worktime As Long = Environment.TickCount 'on garde la valeur du tickcount (qui renvoie le nbre de millisecondes ecoulées depuis le demarrage de windows) pour calculer le temps d'execution de la procédure
- For i = 0 To nbrfile - 1 'on lance la boucle le meme nbre de fois qu'il y a de fichiers
- Dim hb As New IO.BinaryReader(IO.File.OpenRead(chemin2(i + 1)))
- ReDim file_A(FileLen(chemin2(i + 1)) - 1) 'on redimensionne le tableau de la taille du fichier actuel
- hb.BaseStream.Read(file_A, 0, FileLen(chemin2(i + 1))) 'DEBUG UPDATE !! 'on stocke dans ce tableau TOUTS les bytes du fichier
- Dim fs As FileStream = New FileStream(chemin1, FileMode.OpenOrCreate) 'on defini le filestream
- Dim wr As BinaryWriter = New BinaryWriter(fs) 'on defini wr comme objet d'ecriture binaire
- wr.BaseStream.Seek(0, SeekOrigin.End) 'on defini le pointeur à la fin du fichier cible
- wr.Write(file_A) 'on ecrit le contenu du tableau
- fs.Close() 'on ferme tout
- wr.Close() 'on ferme tout
- hb.Close() 'on ferme tout
- Next i
- MsgBox("Effectué en " & ((CLng(Environment.TickCount) - worktime) / 1000).ToString & " secondes")
- End Sub
-
-
- Function get_nbrfile(ByVal firstpath As String) As Integer
- 'fonction qui renvoie le nombre de fichiers d'un groupe à partir du chemin d'un fichier hbs
- Dim temp As String
- temp = Mid(firstpath, 1, Len(firstpath) - 4)
- Dim pos As Integer
- pos = InStrRev(temp, "_") + 1
- Return CInt(Mid(temp, pos))
- End Function
-
- Function get_nbrcurrentfile(ByVal firstpath As String) As Integer
- 'fonction qui renvoie le numero d'un fichier hbs a partir de son chemin
- Dim temp As String
- temp = Mid(firstpath, 1, Len(firstpath) - 4)
- Dim pos(1) As Integer
- pos(0) = InStrRev(temp, ".")
- pos(1) = InStrRev(temp, "_")
- Return CInt(Mid(firstpath, (pos(0) + 1), (pos(1) - pos(0) - 1)))
- End Function
-
- Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
- 'boutton split, lance la demande de nom de fichier si cela n'a pas été fait
- Dim chemin1 As String
- If pathsource.Text = "" Then
- of1.Title = "Choisissez le fichier à splitter"
- of1.Filter = "*.*|*.*"
- of1.InitialDirectory = Environment.CurrentDirectory
- of1.ShowDialog()
- If of1.FileName = "" Then
- of1.Dispose()
- Exit Sub
- End If
- chemin1 = of1.FileName
- Else
- chemin1 = pathsource.Text
- End If
- of1.Dispose()
- Dim nbrfile As Integer = nbrsplit.Value
- Dim chemin2(nbrfile) As String
- split(nbrfile, chemin1)
-
- End Sub
-
- Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
- 'selectionne et affiche les calculs de tailles d'un fichier à splitter deja vu au dessus
- of1.Title = "Choisissez le fichier à splitter"
- of1.Filter = "*.*|*.*"
- of1.InitialDirectory = Environment.CurrentDirectory
- of1.ShowDialog()
- If of1.FileName <> "" Then
- pathsource.Text = of1.FileName
- Dim lnginit As Long
- Dim lngsplit As Long
- Dim lnglastsplit As Long
-
- lnginit = FileLen(pathsource.Text)
- lngsplit = lnginit / nbrsplit.Value
- If lngsplit < CDec(lnginit / nbrsplit.Value) Then lngsplit += 1
- lnglastsplit = lnginit - (lngsplit * (nbrsplit.Value - 1))
- 'lnglastsplit = lngsplit + (lnginit Mod nbrsplit.Value)
- Dim taillesource As Long = FileLen(pathsource.Text)
- Dim lentaille As Integer = taillesource.ToString.Length
-
-
-
- Select Case lentaille
- Case Is <= 3
- lbllngsource.Text = "Taille du fichier à spliter :" & taillesource.ToString & " Octets"
- Case Is > 3
- lbllngsource.Text = "Taille du fichier à spliter :" & taillesource / 1024.ToString & " Ko (" & taillesource.ToString & " Octets)"
- Case Is > 6
- lbllngsource.Text = "Taille du fichier à spliter :" & (taillesource / 1024) / 1024.ToString & " Mo (" & taillesource.ToString & " Octets)"
- Case Is > 9
- lbllngsource.Text = "Taille du fichier à spliter :" & ((taillesource / 1024) / 1024) / 1024.ToString & " Go (" & taillesource.ToString & " Octets)"
- End Select
- lngfiles.Text = "Tailles des fichiers splittés: " & lngsplit.ToString
- lnglfile.Text = "Taille du dernier fichier splitté : " & lnglastsplit.ToString
- End If
- End Sub
-
- Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
- 'Selectionne un fichier .hbs, affiche la tailles de ces fichiers et en determine la taille du fichier a resplitter
- 'le code a deja été utilise plus haut dans le form load, il aurait été plus pratique de faire un sub, je sais
- of1.Title = "Choisissez un des fichiers d'un groupe hbs"
- of1.Filter = "hbs files *.hbs|*.hbs"
- of1.InitialDirectory = Environment.CurrentDirectory
- of1.ShowDialog()
- If of1.FileName = "" Then Exit Sub
- pathsource2.Text = of1.FileName
- lblnbrfile.Text = "Nombre de fichiers .hbs :" & get_nbrfile(pathsource2.Text)
- lbllngfiles.Text = "Taille des fichiers .hbs :" & (FileLen(pathsource2.Text) / 1024).ToString & " Ko (" & FileLen(pathsource2.Text) & " octets )"
- lbllnglfile.Text = "Taille du dernier fichier .hbs :" & (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")) / 1024).ToString & " Ko (" & FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text) & "_")).ToString & " octets)"
-
- Dim tailledesplit As Long = (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_"))))
- Dim lentaille As Integer = tailledesplit.ToString.Length
-
- 'petit calcul de fichier, selon sa taille on l'affichera en octet, kilo octets, megaoctets ou giga octets :
- Select Case lentaille
- Case Is <= 3
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit.ToString & " Octets"
- Case Is > 3
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit / 1024.ToString & " Ko (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
- Case Is > 6
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & (tailledesplit / 1024) / 1024.ToString & " Mo (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
- Case Is > 9
- lblunsplitlng.Text = "Taille du fichier à déspliter :" & ((tailledesplit / 1024) / 1024) / 1024.ToString & " Go (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
- End Select
- End Sub
-
- Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
- 'si il n'y a pas encore de fichier .hbs selectionné, relance la selection
- If pathsource2.Text = "" Then
- of1.Title = "Choisissez un des fichiers d'un groupe hbs"
- of1.Filter = "hbs files *.hbs|*.hbs"
- of1.InitialDirectory = Environment.CurrentDirectory
- of1.ShowDialog()
- If of1.FileName = "" Then
- of1.Dispose()
- Exit Sub
- End If
- pathsource2.Text = of1.FileName
- End If
- Dim chemin1 As String = pathsource2.Text
- of1.Dispose()
- Dim nbrfile As Integer = get_nbrfile(chemin1)
- Dim temp As String
- temp = Mid(chemin1, 1, Len(chemin1) - 4)
- 'depuis le chemin des fichiers .hbs et les mets dans la tableau chemin2()
- Dim chemin2(nbrfile) As String
- Dim i As Integer
- For i = 1 To nbrfile
- chemin2(i) = Replace(chemin1, get_nbrcurrentfile(chemin1) & Mid(chemin1, InStrRev(chemin1, "_")), i.ToString & Mid(chemin1, InStrRev(chemin1, "_")))
- Next
- Dim cheminfin As String = Mid(temp, 1, InStrRev(temp, ".") - 1)
- sf1.Title = "Enregistrer le fichier sous"
- sf1.Filter = "*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1) & "|*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1) 'on recupere l'extension du fichier source pour ne proposer l'enregistrement que sous cette extension
- sf1.FileName = Mid(cheminfin, InStrRev(cheminfin, "\") + 1, Len(cheminfin) - InStrRev(cheminfin, "\")) 'on recupere le nom de fichier d'origine pour le proposer par defaut à l'enregistrement
- sf1.ShowDialog()
- If sf1.FileName = "" Then Exit Sub
- 'lance la function unsplit
- unsplit(nbrfile, chemin2, sf1.FileName)
- End Sub
-
- Private Sub nbrsplit_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nbrsplit.ValueChanged
- 'A chaque fois que la valeur est changé, on recalcule la taille des fichiers
- If pathsource.Text = "" Then Exit Sub
- Dim lnginit As Long
- Dim lngsplit As Long
- Dim lnglastsplit As Long
- 'On recalcul la taille de l'eventuel split :
- lnginit = FileLen(pathsource.Text)
- lngsplit = lnginit / nbrsplit.Value
- If lngsplit < CDec(lnginit / nbrsplit.Value) Then lngsplit += 1
- lnglastsplit = lnginit - (lngsplit * (nbrsplit.Value - 1))
- Dim taillesource As Long = FileLen(pathsource.Text)
- Dim lentaille As Integer = taillesource.ToString.Length
- 'petit calcul de fichier, selon sa taille on l'affichera en octet, kilo octets, megaoctets ou giga octets :
- Select Case lentaille
- Case Is <= 3
- lbllngsource.Text = "Taille du fichier à spliter :" & taillesource.ToString & " Octets"
- Case Is > 3
- lbllngsource.Text = "Taille du fichier à spliter :" & taillesource / 1024.ToString & " Ko (" & taillesource.ToString & " Octets)"
- Case Is > 6
- lbllngsource.Text = "Taille du fichier à spliter :" & (taillesource / 1024) / 1024.ToString & " Mo (" & taillesource.ToString & " Octets)"
- Case Is > 9
- lbllngsource.Text = "Taille du fichier à spliter :" & ((taillesource / 1024) / 1024) / 1024.ToString & " Go (" & taillesource.ToString & " Octets)"
- End Select
- lngfiles.Text = "Tailles des fichiers splittés: " & lngsplit.ToString
- lnglfile.Text = "Taille du dernier fichier splitté : " & lnglastsplit.ToString
-
- End Sub
-
- Public Function hb_inside(ByVal source As String, ByVal stravant As String, ByVal strapres As String)
- 'fonction qui renvoie ce qu'il y a entre deux sous-string, dans une string
- If InStr(1, source, stravant) > 0 Then
- If InStr((InStr(1, source, stravant)), source, strapres) > 0 Then
- If Mid(source, (InStr(1, source, stravant) + Len(stravant)), InStr((InStr(1, source, stravant) + Len(stravant)), source, strapres) - (InStr(1, source, stravant) + Len(stravant))) <> "" Then
- Return Mid(source, (InStr(1, source, stravant) + Len(stravant)), InStr((InStr(1, source, stravant) + Len(stravant)), source, strapres) - (InStr(1, source, stravant) + Len(stravant)))
- End If
- End If
- End If
- End Function
- End Class
-
Imports System.IO
Imports System
Imports Microsoft.Win32
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim args As String
If hb_inside(Environment.CommandLine, "Bpath ", " Epath") <> "" Then
args = hb_inside(Environment.CommandLine, "Bpath ", " Epath") 'on check si les arguments contiennent qqc entre Bpath et Epath (ne s'executera que si un fichier est appelé par le menu contextuel, et si vous avez lancer le .reg), si c'est le cas
Else
If Environment.GetCommandLineArgs.GetUpperBound(0) >= 1 Then 'si ce n'est pas le cas, on regarde si il y a + de 1 ligne d'arguments
If IO.File.Exists(Environment.GetCommandLineArgs(1)) Then 'si oui on regarde si la deuxieme ligne est un fichier (ne se passera que si vous glissez un fichier sur le .exe
args = Environment.GetCommandLineArgs(1)
End If
End If
End If
If args <> "" Then 'si on a un fichier sur lequel travailler dans les arguments :
If IO.File.Exists(args) Then 'on check si le fichier existe
If LCase(Mid(args, Len(args) - 3, 4)) = ".hbs" Then 'on check si c'est un fichier .hbs (splitté)
'si oui alors :
Dim chemin1 As String = args
Dim nbrfile As Integer = get_nbrfile(chemin1) 'on appele la fonction get_nbrfile qui renvoie le nbre de fichiers splitté du groupe HBS
Dim temp As String
temp = Mid(chemin1, 1, Len(chemin1) - 4) 'ceci renvoie le nom de fichier d'origine sans le .hbs
Dim chemin2(nbrfile) As String 'on creer un tableau à une dimension dont le nbre de cellules est = au nbre de fichiers hbs + 1 (les cellules debutent à 0)
Dim i As Integer
For i = 1 To nbrfile
chemin2(i) = Replace(chemin1, get_nbrcurrentfile(chemin1) & Mid(chemin1, InStrRev(chemin1, "_")), i.ToString & Mid(chemin1, InStrRev(chemin1, "_"))) 'on place les chemins de touts les fichiers splitté grace a cette boucle dans laquel on va remplacer le numero du fichier par tts les numeros du groupe (pas clair...ouais bah...)
Next
Dim cheminfin As String = Mid(temp, 1, InStrRev(temp, ".") - 1)
'on propose le choix du nom de fichiers à l'utilisateur
sf1.Title = "Enregistrer le fichier sous"
sf1.Filter = "*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1) & "|*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1)
sf1.FileName = Mid(cheminfin, InStrRev(cheminfin, "\") + 1, Len(cheminfin) - InStrRev(cheminfin, "\"))
sf1.ShowDialog()
If sf1.FileName = "" Then Exit Sub
pathsource2.Text = args
'On affiche le nbre de fichiers et la taille du fichier a despliter:
lblnbrfile.Text = "Nombre de fichiers .hbs :" & get_nbrfile(pathsource2.Text)
lbllngfiles.Text = "Taille des fichiers .hbs :" & (FileLen(pathsource2.Text) / 1024).ToString & " Ko (" & FileLen(pathsource2.Text) & " octets )"
lbllnglfile.Text = "Taille du dernier fichier .hbs :" & (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")) / 1024).ToString & " Ko (" & FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text) & "_")).ToString & " octets)"
Dim tailledesplit As Long = (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_"))))
Dim lentaille As Integer = tailledesplit.ToString.Length
Select Case lentaille
Case Is <= 3
lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit.ToString & " Octets"
Case Is > 3
lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit / 1024.ToString & " Ko (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
Case Is > 6
lblunsplitlng.Text = "Taille du fichier à déspliter :" & (tailledesplit / 1024) / 1024.ToString & " Mo (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
Case Is > 9
lblunsplitlng.Text = "Taille du fichier à déspliter :" & ((tailledesplit / 1024) / 1024) / 1024.ToString & " Go (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
End Select
unsplit(nbrfile, chemin2, sf1.FileName) 'on lance la procedure unsplit qui specifie le nbre de fichiers, le tableau contenant les chemins des fichiers du groupe HBS et le chemin de fichier de sortie
TabControl1.SelectedTab = Tab2
Else
'si ce n'est pas un fichier .hbs :
pathsource.Text = args
'On calcul la taille du fichier sources et des "futurs" fichiers .hbs selon la valeur de nbrsplit
Dim lnginit As Long = FileLen(pathsource.Text)
Dim lngsplit As Long = lnginit / nbrsplit.Value
Dim lnglastsplit As Long
If lngsplit < CDec(lnginit / nbrsplit.Value) Then lngsplit += 1
lnglastsplit = lnginit - (lngsplit * (nbrsplit.Value - 1))
Dim taillesource As Long = FileLen(pathsource.Text)
Dim lentaille As Integer = taillesource.ToString.Length
'Calcul la taille du fichier source et l'affiche
Select Case lentaille
Case Is <= 3
lbllngsource.Text = "Taille du fichier à spliter :" & taillesource.ToString & " Octets"
Case Is > 3
lbllngsource.Text = "Taille du fichier à spliter :" & taillesource / 1024.ToString & " Ko (" & taillesource.ToString & " Octets)"
Case Is > 6
lbllngsource.Text = "Taille du fichier à spliter :" & (taillesource / 1024) / 1024.ToString & " Mo (" & taillesource.ToString & " Octets)"
Case Is > 9
lbllngsource.Text = "Taille du fichier à spliter :" & ((taillesource / 1024) / 1024) / 1024.ToString & " Go (" & taillesource.ToString & " Octets)"
End Select
'affiche la taille des "futurs" fichiers splittés
lngfiles.Text = "Tailles des fichiers splittés: " & lngsplit.ToString
lnglfile.Text = "Taille du dernier fichier splitté : " & lnglastsplit.ToString
End If
End If
End If
End Sub
Private Sub split(ByVal nbrfile As Integer, ByVal chemin1 As String)
Dim lnginit As Long
Dim lngsplit As Long
Dim lnglastsplit As Long
Dim worktime As Long = Environment.TickCount 'on garde la valeur du tickcount (qui renvoie le nbre de millisecondes ecoulées depuis le demarrage de windows) pour calculer le temps d'execution de la procédure
Dim hb As New IO.BinaryReader(IO.File.OpenRead(chemin1)) 'on defini donc hb comme "binaryreader" , et on y ouvre le chemin contenu dans la string chemin1
Dim file_a(FileLen(chemin1)) As Byte 'on crée un tableau de byte donc le nbre de cellules est egale à la taille du fichiers en octets
Dim i As Integer
hb.BaseStream.Read(file_a, 0, FileLen(chemin1)) 'on lit le fichier dans les tableau teststr
'on calcul la tailles des fichiers .hbs selon le nbre de splits demandés
lnginit = FileLen(chemin1)
lngsplit = lnginit / nbrfile
If lngsplit > CDec(lnginit / nbrfile) Then lngsplit += 1
lnglastsplit = lnginit - (lngsplit * (nbrfile - 1))
'ecriture des fichiers .hbs, sauf le dernier qui n'aura surement pas la meme taille :
For i = 0 To nbrfile - 2
Dim hbwrite As New IO.BinaryWriter(IO.File.OpenWrite(chemin1 & "." & (i + 1).ToString & "_" & nbrfile.ToString & ".hbs"))
hbwrite.BaseStream.Write(file_a, (i * lngsplit), lngsplit)
hbwrite.Close()
hbwrite = Nothing
Application.DoEvents()
Next i
'ecriture maintenant du dernier fichiers hbs, qui doit faire qq octets de moins que les autres, selon la taille du fichier source
Dim hbwrite2 As New IO.BinaryWriter(IO.File.OpenWrite(chemin1 & "." & (i + 1).ToString & "_" & nbrfile.ToString & ".hbs"))
hbwrite2.BaseStream.Write(file_a, ((nbrfile - 1) * lngsplit), lnglastsplit)
hbwrite2.Close()
Dim splittm As String = ((CLng(Environment.TickCount) - worktime) / 1000).ToString & " secondes"
MsgBox("Le fichier " & chemin1 & " a été splitté avec succés en " & splittm)
End Sub
Private Sub unsplit(ByVal nbrfile As Integer, ByVal chemin2() As String, ByVal chemin1 As String)
Dim i As Integer
Dim lngsplit As Long
Dim file_A() As Byte 'on crée un tableau de byte donc le nbre de cellules est egale à la taille du fichiers en octets
Dim n As Long
Dim worktime As Long = Environment.TickCount 'on garde la valeur du tickcount (qui renvoie le nbre de millisecondes ecoulées depuis le demarrage de windows) pour calculer le temps d'execution de la procédure
For i = 0 To nbrfile - 1 'on lance la boucle le meme nbre de fois qu'il y a de fichiers
Dim hb As New IO.BinaryReader(IO.File.OpenRead(chemin2(i + 1)))
ReDim file_A(FileLen(chemin2(i + 1)) - 1) 'on redimensionne le tableau de la taille du fichier actuel
hb.BaseStream.Read(file_A, 0, FileLen(chemin2(i + 1))) 'DEBUG UPDATE !! 'on stocke dans ce tableau TOUTS les bytes du fichier
Dim fs As FileStream = New FileStream(chemin1, FileMode.OpenOrCreate) 'on defini le filestream
Dim wr As BinaryWriter = New BinaryWriter(fs) 'on defini wr comme objet d'ecriture binaire
wr.BaseStream.Seek(0, SeekOrigin.End) 'on defini le pointeur à la fin du fichier cible
wr.Write(file_A) 'on ecrit le contenu du tableau
fs.Close() 'on ferme tout
wr.Close() 'on ferme tout
hb.Close() 'on ferme tout
Next i
MsgBox("Effectué en " & ((CLng(Environment.TickCount) - worktime) / 1000).ToString & " secondes")
End Sub
Function get_nbrfile(ByVal firstpath As String) As Integer
'fonction qui renvoie le nombre de fichiers d'un groupe à partir du chemin d'un fichier hbs
Dim temp As String
temp = Mid(firstpath, 1, Len(firstpath) - 4)
Dim pos As Integer
pos = InStrRev(temp, "_") + 1
Return CInt(Mid(temp, pos))
End Function
Function get_nbrcurrentfile(ByVal firstpath As String) As Integer
'fonction qui renvoie le numero d'un fichier hbs a partir de son chemin
Dim temp As String
temp = Mid(firstpath, 1, Len(firstpath) - 4)
Dim pos(1) As Integer
pos(0) = InStrRev(temp, ".")
pos(1) = InStrRev(temp, "_")
Return CInt(Mid(firstpath, (pos(0) + 1), (pos(1) - pos(0) - 1)))
End Function
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
'boutton split, lance la demande de nom de fichier si cela n'a pas été fait
Dim chemin1 As String
If pathsource.Text = "" Then
of1.Title = "Choisissez le fichier à splitter"
of1.Filter = "*.*|*.*"
of1.InitialDirectory = Environment.CurrentDirectory
of1.ShowDialog()
If of1.FileName = "" Then
of1.Dispose()
Exit Sub
End If
chemin1 = of1.FileName
Else
chemin1 = pathsource.Text
End If
of1.Dispose()
Dim nbrfile As Integer = nbrsplit.Value
Dim chemin2(nbrfile) As String
split(nbrfile, chemin1)
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'selectionne et affiche les calculs de tailles d'un fichier à splitter deja vu au dessus
of1.Title = "Choisissez le fichier à splitter"
of1.Filter = "*.*|*.*"
of1.InitialDirectory = Environment.CurrentDirectory
of1.ShowDialog()
If of1.FileName <> "" Then
pathsource.Text = of1.FileName
Dim lnginit As Long
Dim lngsplit As Long
Dim lnglastsplit As Long
lnginit = FileLen(pathsource.Text)
lngsplit = lnginit / nbrsplit.Value
If lngsplit < CDec(lnginit / nbrsplit.Value) Then lngsplit += 1
lnglastsplit = lnginit - (lngsplit * (nbrsplit.Value - 1))
'lnglastsplit = lngsplit + (lnginit Mod nbrsplit.Value)
Dim taillesource As Long = FileLen(pathsource.Text)
Dim lentaille As Integer = taillesource.ToString.Length
Select Case lentaille
Case Is <= 3
lbllngsource.Text = "Taille du fichier à spliter :" & taillesource.ToString & " Octets"
Case Is > 3
lbllngsource.Text = "Taille du fichier à spliter :" & taillesource / 1024.ToString & " Ko (" & taillesource.ToString & " Octets)"
Case Is > 6
lbllngsource.Text = "Taille du fichier à spliter :" & (taillesource / 1024) / 1024.ToString & " Mo (" & taillesource.ToString & " Octets)"
Case Is > 9
lbllngsource.Text = "Taille du fichier à spliter :" & ((taillesource / 1024) / 1024) / 1024.ToString & " Go (" & taillesource.ToString & " Octets)"
End Select
lngfiles.Text = "Tailles des fichiers splittés: " & lngsplit.ToString
lnglfile.Text = "Taille du dernier fichier splitté : " & lnglastsplit.ToString
End If
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
'Selectionne un fichier .hbs, affiche la tailles de ces fichiers et en determine la taille du fichier a resplitter
'le code a deja été utilise plus haut dans le form load, il aurait été plus pratique de faire un sub, je sais
of1.Title = "Choisissez un des fichiers d'un groupe hbs"
of1.Filter = "hbs files *.hbs|*.hbs"
of1.InitialDirectory = Environment.CurrentDirectory
of1.ShowDialog()
If of1.FileName = "" Then Exit Sub
pathsource2.Text = of1.FileName
lblnbrfile.Text = "Nombre de fichiers .hbs :" & get_nbrfile(pathsource2.Text)
lbllngfiles.Text = "Taille des fichiers .hbs :" & (FileLen(pathsource2.Text) / 1024).ToString & " Ko (" & FileLen(pathsource2.Text) & " octets )"
lbllnglfile.Text = "Taille du dernier fichier .hbs :" & (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")) / 1024).ToString & " Ko (" & FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text) & "_")).ToString & " octets)"
Dim tailledesplit As Long = (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_"))))
Dim lentaille As Integer = tailledesplit.ToString.Length
'petit calcul de fichier, selon sa taille on l'affichera en octet, kilo octets, megaoctets ou giga octets :
Select Case lentaille
Case Is <= 3
lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit.ToString & " Octets"
Case Is > 3
lblunsplitlng.Text = "Taille du fichier à déspliter :" & tailledesplit / 1024.ToString & " Ko (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
Case Is > 6
lblunsplitlng.Text = "Taille du fichier à déspliter :" & (tailledesplit / 1024) / 1024.ToString & " Mo (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
Case Is > 9
lblunsplitlng.Text = "Taille du fichier à déspliter :" & ((tailledesplit / 1024) / 1024) / 1024.ToString & " Go (" & (((FileLen(pathsource2.Text)) * (get_nbrfile(pathsource2.Text) - 1)) + (FileLen(Replace(pathsource2.Text, "." & get_nbrcurrentfile(pathsource2.Text).ToString & "_", "." & get_nbrfile(pathsource2.Text).ToString & "_")))).ToString & " Octets)"
End Select
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
'si il n'y a pas encore de fichier .hbs selectionné, relance la selection
If pathsource2.Text = "" Then
of1.Title = "Choisissez un des fichiers d'un groupe hbs"
of1.Filter = "hbs files *.hbs|*.hbs"
of1.InitialDirectory = Environment.CurrentDirectory
of1.ShowDialog()
If of1.FileName = "" Then
of1.Dispose()
Exit Sub
End If
pathsource2.Text = of1.FileName
End If
Dim chemin1 As String = pathsource2.Text
of1.Dispose()
Dim nbrfile As Integer = get_nbrfile(chemin1)
Dim temp As String
temp = Mid(chemin1, 1, Len(chemin1) - 4)
'depuis le chemin des fichiers .hbs et les mets dans la tableau chemin2()
Dim chemin2(nbrfile) As String
Dim i As Integer
For i = 1 To nbrfile
chemin2(i) = Replace(chemin1, get_nbrcurrentfile(chemin1) & Mid(chemin1, InStrRev(chemin1, "_")), i.ToString & Mid(chemin1, InStrRev(chemin1, "_")))
Next
Dim cheminfin As String = Mid(temp, 1, InStrRev(temp, ".") - 1)
sf1.Title = "Enregistrer le fichier sous"
sf1.Filter = "*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1) & "|*" & Mid(cheminfin, InStrRev(cheminfin, "."), Len(cheminfin) - InStrRev(cheminfin, ".") + 1) 'on recupere l'extension du fichier source pour ne proposer l'enregistrement que sous cette extension
sf1.FileName = Mid(cheminfin, InStrRev(cheminfin, "\") + 1, Len(cheminfin) - InStrRev(cheminfin, "\")) 'on recupere le nom de fichier d'origine pour le proposer par defaut à l'enregistrement
sf1.ShowDialog()
If sf1.FileName = "" Then Exit Sub
'lance la function unsplit
unsplit(nbrfile, chemin2, sf1.FileName)
End Sub
Private Sub nbrsplit_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nbrsplit.ValueChanged
'A chaque fois que la valeur est changé, on recalcule la taille des fichiers
If pathsource.Text = "" Then Exit Sub
Dim lnginit As Long
Dim lngsplit As Long
Dim lnglastsplit As Long
'On recalcul la taille de l'eventuel split :
lnginit = FileLen(pathsource.Text)
lngsplit = lnginit / nbrsplit.Value
If lngsplit < CDec(lnginit / nbrsplit.Value) Then lngsplit += 1
lnglastsplit = lnginit - (lngsplit * (nbrsplit.Value - 1))
Dim taillesource As Long = FileLen(pathsource.Text)
Dim lentaille As Integer = taillesource.ToString.Length
'petit calcul de fichier, selon sa taille on l'affichera en octet, kilo octets, megaoctets ou giga octets :
Select Case lentaille
Case Is <= 3
lbllngsource.Text = "Taille du fichier à spliter :" & taillesource.ToString & " Octets"
Case Is > 3
lbllngsource.Text = "Taille du fichier à spliter :" & taillesource / 1024.ToString & " Ko (" & taillesource.ToString & " Octets)"
Case Is > 6
lbllngsource.Text = "Taille du fichier à spliter :" & (taillesource / 1024) / 1024.ToString & " Mo (" & taillesource.ToString & " Octets)"
Case Is > 9
lbllngsource.Text = "Taille du fichier à spliter :" & ((taillesource / 1024) / 1024) / 1024.ToString & " Go (" & taillesource.ToString & " Octets)"
End Select
lngfiles.Text = "Tailles des fichiers splittés: " & lngsplit.ToString
lnglfile.Text = "Taille du dernier fichier splitté : " & lnglastsplit.ToString
End Sub
Public Function hb_inside(ByVal source As String, ByVal stravant As String, ByVal strapres As String)
'fonction qui renvoie ce qu'il y a entre deux sous-string, dans une string
If InStr(1, source, stravant) > 0 Then
If InStr((InStr(1, source, stravant)), source, strapres) > 0 Then
If Mid(source, (InStr(1, source, stravant) + Len(stravant)), InStr((InStr(1, source, stravant) + Len(stravant)), source, strapres) - (InStr(1, source, stravant) + Len(stravant))) <> "" Then
Return Mid(source, (InStr(1, source, stravant) + Len(stravant)), InStr((InStr(1, source, stravant) + Len(stravant)), source, strapres) - (InStr(1, source, stravant) + Len(stravant)))
End If
End If
End If
End Function
End Class
Conclusion
Ce n'est pas specialement original mais c'etait en partie pour voir les performances de cette methode à laquelle j'ai penser en cours (pas d'info nan...de dessin technique...arg!) ... le resultat est plutot correct, meme pour des gros fichiers types iso de 700Mo . Laissez vos avis, remarques, critiques en commentaires :)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|