Comment reconnaitre un fichier texte
Bonjour a tous :wink:
J'aimerais savoir s'il existe une fonction en C (ou une autre methode) qui me pemettrait de savoir si un fichier est un fichier texte ou non. Je precise que je suis sous Linux :) .
Mer recherches m'ont oriente vers la fonction "file" de linux et "nombre magic" mais je n'aboutit a rien :cry: .
Re: Comment reconnaitre un fichier texte
Citation:
Envoyé par Shin no Noir
J'aimerais savoir s'il existe une fonction en C (ou une autre methode) qui me pemettrait de savoir si un fichier est un fichier texte ou non.
En théorie, non.
En pratique, si on fait le profil de la récurrence des caractères, on va voir un pic à 10 (LF) et à 32 (SPC') qui est plus que révélateur. Mais ça reste de l'approximation.
Exemples :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
processing /dev/forums/OP/main.c ...
'Profil' max=304 ('*'=5) (width=60)
[ 0] 0|
[ 1] 0|
[ 2] 0|
[ 3] 0|
[ 4] 0|
[ 5] 0|
[ 6] 0|
[ 7] 0|
[ 8] 0|
[ 9] 0|
[ 10] 56|***********
[ 11] 0|
[ 12] 0|
[ 13] 56|***********
[ 14] 0|
[ 15] 0|
[ 16] 0|
[ 17] 0|
[ 18] 0|
[ 19] 0|
[ 20] 0|
[ 21] 0|
[ 22] 0|
[ 23] 0|
[ 24] 0|
[ 25] 0|
[ 26] 0|
[ 27] 0|
[ 28] 0|
[ 29] 0|
[ 30] 0|
[ 31] 0|
[ 32] 304|************************************************************
[ 33] 3|
[ 34] 14|**
[ 35] 14|**
[ 36] 0|
[ 37] 1|
[ 38] 0|
[ 39] 0|
[ 40] 17|***
[ 41] 17|***
[ 42] 6|*
[ 43] 0|
[ 44] 9|*
[ 45] 91|******************
[ 46] 9|*
[ 47] 15|***
[ 48] 4|
[ 49] 5|*
[ 50] 2|
[ 51] 0|
[ 52] 0|
[ 53] 0|
[ 54] 1|
[ 55] 1|
[ 56] 2|
[ 57] 0|
[ 58] 0|
[ 59] 12|**
[ 60] 2|
[ 61] 8|*
[ 62] 1|
[ 63] 0|
[ 64] 0|
[ 65] 1|
[ 66] 1|
[ 67] 0|
[ 68] 1|
[ 69] 2|
[ 70] 2|
[ 71] 2|
[ 72] 0|
[ 73] 1|
[ 74] 0|
[ 75] 0|
[ 76] 11|**
[ 77] 0|
[ 78] 5|*
[ 79] 3|
[ 80] 3|
[ 81] 0|
[ 82] 1|
[ 83] 0|
[ 84] 0|
[ 85] 5|*
[ 86] 0|
[ 87] 0|
[ 88] 0|
[ 89] 0|
[ 90] 0|
[ 91] 0|
[ 92] 1|
[ 93] 0|
[ 94] 0|
[ 95] 9|*
[ 96] 0|
[ 97] 10|**
[ 98] 3|
[ 99] 16|***
[ 100] 14|**
[ 101] 37|*******
[ 102] 28|*****
[ 103] 2|
[ 104] 22|****
[ 105] 41|********
[ 106] 1|
[ 107] 1|
[ 108] 10|**
[ 109] 11|**
[ 110] 30|******
[ 111] 12|**
[ 112] 12|**
[ 113] 0|
[ 114] 17|***
[ 115] 19|***
[ 116] 12|**
[ 117] 7|*
[ 118] 3|
[ 119] 2|
[ 120] 0|
[ 121] 0|
[ 122] 0|
[ 123] 6|*
[ 124] 0|
[ 125] 6|*
[ 126] 0|
[ 127] 0| |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
processing /dev/forums/OP/01.exe ...
'Profil' max=12355 ('*'=163) (width=75)
[ 0] 12355|****************************************************************
***********
[ 1] 498|***
[ 2] 355|**
[ 3] 498|***
[ 4] 402|**
[ 5] 260|*
[ 6] 43|
[ 7] 26|
[ 8] 240|*
[ 9] 32|
[ 10] 42|
[ 11] 19|
[ 12] 95|
[ 13] 23|
[ 14] 9|
[ 15] 89|
[ 16] 110|
[ 17] 10|
[ 18] 9|
[ 19] 8|
[ 20] 88|
[ 21] 24|
[ 22] 15|
[ 23] 11|
[ 24] 36|
[ 25] 11|
[ 26] 13|
[ 27] 20|
[ 28] 52|
[ 29] 17|
[ 30] 14|
[ 31] 17|
[ 32] 308|*
[ 33] 45|
[ 34] 18|
[ 35] 3|
[ 36] 527|***
[ 37] 97|
[ 38] 41|
[ 39] 37|
[ 40] 35|
[ 41] 22|
[ 42] 14|
[ 43] 6|
[ 44] 47|
[ 45] 28|
[ 46] 448|**
[ 47] 17|
[ 48] 49|
[ 49] 72|
[ 50] 40|
[ 51] 22|
[ 52] 84|
[ 53] 49|
[ 54] 48|
[ 55] 46|
[ 56] 20|
[ 57] 56|
[ 58] 20|
[ 59] 8|
[ 60] 21|
[ 61] 27|
[ 62] 10|
[ 63] 6|
[ 64] 424|**
[ 65] 89|
[ 66] 20|
[ 67] 90|
[ 68] 132|
[ 69] 150|
[ 70] 24|
[ 71] 19|
[ 72] 23|
[ 73] 28|
[ 74] 9|
[ 75] 10|
[ 76] 92|
[ 77] 28|
[ 78] 23|
[ 79] 44|
[ 80] 75|
[ 81] 42|
[ 82] 51|
[ 83] 136|
[ 84] 95|
[ 85] 150|
[ 86] 19|
[ 87] 18|
[ 88] 14|
[ 89] 45|
[ 90] 1|
[ 91] 46|
[ 92] 25|
[ 93] 118|
[ 94] 29|
[ 95] 749|****
[ 96] 40|
[ 97] 679|****
[ 98] 101|
[ 99] 180|*
[ 100] 351|**
[ 101] 377|**
[ 102] 107|
[ 103] 60|
[ 104] 107|
[ 105] 415|**
[ 106] 10|
[ 107] 21|
[ 108] 183|*
[ 109] 159|
[ 110] 148|
[ 111] 161|
[ 112] 224|*
[ 113] 74|
[ 114] 256|*
[ 115] 364|**
[ 116] 735|****
[ 117] 143|
[ 118] 45|
[ 119] 35|
[ 120] 118|
[ 121] 33|
[ 122] 17|
[ 123] 7|
[ 124] 28|
[ 125] 28|
[ 126] 8|
[ 127] 4| |