Taille de fichiers sans les espaces

cs_psychodingue Messages postés 67 Date d'inscription samedi 5 janvier 2002 Statut Membre Dernière intervention 2 juin 2005 - 24 avril 2003 à 22:31
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 24 avril 2003 à 23:25
Salut à tous

voilà j'ai des fichiers avec des espaces dedant, et j'aimerai calculer leur taille si il n'y avais pas d'espace...
Quelqu'un connais la solution?

Merci
@ bientôt

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2003 à 22:50
ok , alors en fait , je vois plein de solutions :

mais la moins mauvaise serait de faire un Find (InStr) sur tes espaces , en decalant l'indice de depart (pour eviter un boucle infinie !! ) , en incrementant un compteur au fur et a mesure. Une fois la boule terminée , tu as le nombre d'espaces. Tu sais faire une soustraction , je suppose ??

    Dim Start As Long, NbSpace As Long, Pos As Long
    Start = 1
    Pos = InStr(Start, Text1.Text, " ", vbTextCompare)
    While Pos <> 0
        DoEvents
        NbSpace = NbSpace + 1
        Start = Pos + 1
        Pos = InStr(Start, Text1.Text, " ", vbTextCompare)
    Wend
    MsgBox NbSpace & " Espace(s) dans la chaine scannée."



------------------------------------------------------------------

By Renfield

thomas_reynald@msn.com

Aucune touche n'a été bléssée lors de la saisie de ce texte..........
0
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
24 avril 2003 à 23:22
en ce qui est des fichiers, sa ne change pas grand chose, sa parait complexe, mai c tout con ;)

Private Function CalculTaille(File) As String

Dim Pos As Long
Dim Char As String * 1
Dim Taille_Totale As Long
Dim Taille_Sans_Espaces As Long
Dim Nombre_Espaces As Long

Open File For Binary As #1
Do While Not EOF(1)
Pos = Pos + 1
Get #1, Pos, Char
If Char <> Chr(32) Then Taille_Sans_Espaces = Taille_Sans_Espaces + 1
Taille_Totale = Taille_Totale + 1
Nombre_Espaces = Taille_Totale - Taille_Sans_Espaces
Loop
CalculTaille = Taille_Sans_Espaces & " " & Nombre_Espaces
Close #1
End Function

Private Sub Command1_Click()
Text2.Text = CalculTaille(Text1.Text)
End Sub


***************
8-) Mon Home FTP 8-)
***************
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
24 avril 2003 à 23:25
Ou bien, sans charger le fichier dans une TextBox :

Dim NumFich As Integer, Caract As String*1, NbreEspaces As Long, TailleFichier As Long
NumFich = FreeFile
Open "c:\Chemin\Fichier.ext" For Binary As #NumFich
TailleFichier = LOF(NumFich)
Do While Not EOF(NumFich)
Get NumFich,, Caract If Asc(Caract) 32 Then NbreEspaces NbreEspaces + 1
Loop
Close NumFich
MsgBox "Sans espaces : " & (TailleFichier - NbreEspaces) & " octets" & vbLf & "Sur un total de " & TailleFichier & "octets"
0
Rejoignez-nous