cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 2023
-
25 juin 2008 à 22:16
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 2023
-
27 juin 2008 à 17:15
Bonsoir,
J'ai remarqué que pour qu'une donnée s'écrive correctement dans un fichier avec BlockWrite, il fallait un array of char (par exemple).
Mais j'ai un soucis, je veux sauvegarder le contenu d'un TRichEdit dans un fichier binaire suivant la structure que j'ai décidé pour ce format, il me faut donc passer du String vers un Array of Char.
Comment faire cela ?
Merci d'avance.
P.S.: Ne connaissant pas à l'avance la taille pour le array of char, je le définit en dynamic, donc il apparait comme un dynamic of char.
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 26 juin 2008 à 15:31
Je ne vois pas pourquoi tu te ferais bannir...
Mais si tu le proposes, c'est bien que tu as quelque chose à te reprocher... par exemple d'être insolent...
Le problème, c'est que ta question n'est pas précise, que tu rejettes les premières propositions de Cirec froidement, que tu accuses Jlen de ne rien s'y connaître alors que tout ce qu'il a dit est juste, et que enfin tu en profites pour traiter tout le monde de "con" sous prétexte que ton frère à un niveau bac+5.
Je ne sais pas si tu le remarques, mais c'est toi qui te crée des problèmes. Ici on est là pour aider. La preuve: on répond à ta question, on cite de la documentation, c'est pas pour des prunes tout de même, non ?
Maintenant tu peux nous traiter de cons, d'ignorants, de tout ce que tu veux, cela ne manifeste de ta part que ta faiblesse.
En effet, les gens civilisés opposent à un argument un autre argument.
Pour revenir au problème posé initialement, je te signale qu'en principe, quand quelqu'un propose quelque chose, on ne répond pas "ah mais ça je sais pas faire...j'ai jamais réussi à m'en servir". On essaye et on revient après.
Toi tu es du genre imperméable à toute nouveauté. C'est pas comme ça qu'on avance. Demande à des pros justement.
Sinon, pour clore une fois pour toute le débat, d'après ton avant-dernier paragraphe, je vois que nous avons bien la même définition du terme "fichier binaire". Alors inutile d'en faire un foin.
Et concernant la citation de Wiki que j'ai reprise, c'était pour montrer le flou total de leur formulation. Wiki c'est bien mais pas trop. Là c'est carrément incompréhensible pour quelqu'un qui ne sait pas la vraie définition, donc c'est trompeur: on n'appelle ça du sophisme.
Voila voila.
C'est quand même pas si compliqué de ne pas se crier dessus...... enfin j'espère.
*Ton frère a un bac +5 : Depuis quand culture = intélligence mon garcon .
Puis tu sais avoir un bac +5 ca n'a rien d'extraordinaire . Il y a plein de gens qui ont ce niveau d'études. Puis tu sais des gens qui ont un Bac+5 et qui dans la pratique sont des quiches dans leur métier, j'en ai rencontré un paquet .
*Par rapport à toi :
1)Tu es tellement tétu, tellement fermé d'esprit et tellement enfermé dans ta bulle que tu n'arrives meme à faire la distinction entre nos points de divergences et nos points d'accords.
Ca fait 3 pages que l'on se tue à te dire qu'un fichier binaire n'est pas un fichier texte. Cependant si tu avais un semblant d'intélligence, tu aurais fais un test : Déclare une variable string et assigne lui une valeur. Compile et regarde dans NotePad : tu la véras ta chaine de caractère. Tout ca pour rejoindre les mots de Florenth.
Secondement :
*JLen a dit "Ainsi en utilisant un SaveToFile ou les méthode de cirec tu obtiendras trés exactement la même chose que tu le nommes 'monfichier.txt' ou 'monfichier.bin' le programme se 'fout' comme sa première couche du nom de l'extension qui n'est après tout qu'une convention et même si tu l'appelais 'tarte a la creme.ttc' son contenu serait identique".
*Toi : Tu as pas compris ce qu'est le SaveToFile, cela permet de sauvegarder dans un fichier texte, donc lisible par le commun des mortels.
Tu n'as rien compris à ce que JLen a dit : Prend un ton TRichEdit. Fait un SaveToFile('blabla.bin') ou SaveToFile('Blabla.txt') et ouvre les deux fichiers avec NotePad et tu comprendra que " tu obtiendras trés exactement la même chose". C'est pas ton SaveToFile qui change ou crée la structure d'un fichier : voila la signification des mots de JLen.
Maintenant dans la mesure ou tu n'ajoutes que des Chaines de Caractères, l'ensembles des méthodes fonctionneront. Pas besoin de se prendre la tête.
Quatrièmement : On te donne une méthode propre qui consiste à utiliser les Flux. Tu t'en tête à utiliser une méthode obsolète et pourri que sont les blocs.
Cinquièmement : Si tu cherches à faire un éditeur RTF faire de la bidouille avec ton RichEdit n'est pas vraiment la bonne méthode.
Sixièmement : C'est toi qui a dit que l'on ne peut pas ouvrir un fichier binaire avec NotePad. Que les caracètres n'est aucune signification c'est autre chose : faut pas tout confondre jeune homme. Quand on veut joué au pro on utilise le langage qui va avec.
Pour finir : Que tu te fasses bannes pour ta bètise c'est pas le genre de la maison : apres tout c'est toi qui est ridicule. Par contre pas besoin de t'inscrire en victime : tu es un ptit con insolent et irrespectueux et ca ca pourrait de valoir un ban sans la moindre hésitation. Alors le snif snif vous etes tous des gros salops, ben ta comédie tu peux la faire ailleurs : ca prend pas ici . Quand à Nix il a autre chose à faire que de corriger un gamin.
Nous on est peut etre pas des pros, mais on a dépassé le stade de polluer un forum pour arriver à faire des choses aussi infantines.
Merci d'aller voir ton frère dorénavant quand tu auras besoin d'aide plutot que de tourner vers lui.
Il t'apprendra tous les secrets des blocs et leur hauts combien optimisation
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 26 juin 2008 à 18:52
Nous sommes peut être tous des "cons", des ignorants certainement (on a au moins l'avantage de le savoir).
maintenant faut-il te rappeler qu'un ordinateur ne traite que du binaire que tous les fichiers sont par définition des fchiers binaires et que les fichiers texte n'en sont qu'une restriction, que si les caractères imprimables n'ont été défini que par convention et qu'ils font malgré tout partie de l'ensemble des char.
Maintenant commence par réviser tes bases avant de nous sortir tes théories fais des tests, soit curieux c'est le début de la sagesse. Les échecs nous apprennent bien plus que les réussites.
Ps si tu veux faire "péter" les galons sache que j'ai un doctorat en physique mais que malgré cela je suis loin de tout connaitre.Restons Humble que diable; on finit toujours par trouver plus savant que soi. La connaissance est une chose toute relative. Le savoir ne fait pas l'intelligence.........
Jlen
Vous n’avez pas trouvé la réponse que vous recherchez ?
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 26 juin 2008 à 18:58
et depuis quand on ne peut pas mettre autre chose que des caractères imprimables dans un string??? c'est nouveau cela vient de sortir?
je vois que ton ignorance est insondable.
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 26 juin 2008 à 19:00
"Au début il a parler des Streams, donc totalement HS vu que ma demande porte sur BlockRead et BlockWrite"
> mon pauvre c'est toi qui est HS ! Un stream un accès sur un fichier. C'est 10 fois mieux que ton truc qui date du Pascal.
"j'ai mes raisons"
=> Lesquelles ? ***(à part compatibilité car ça c'est une fausse-bonne raison)
"SaveToFile, je me borne à dire que ça, cela me permet un enregistrement dans un fichier texte mais pas pour un binaire"
=> Certes, mais SaveToStream lui par contr le permet. On t'en a pas parlé car ta question était trop floue et que t'avais l'air d'un débutant qui a peur des flux (ce qui a l'air d'être toujours le cas)
"Alors bon, ben puisque apparemment ont est mal reçus quand on demande
de l'aide sur un sujet alors qu'il y a d'autres manières de faire
(utilisation des Streams dans mon cas), ben je m'abstiendrait de
demander de l'aide."
=> Petite correction: on est mal reçu quand on est fainéant. C'est entièrement autre chose.
"Vu que apparemment pour vous c'est : "Tu fais ce que je dis et tu fermes ta geule""
=> C'est plutôt, "tu essayes ce que je te suggère et tu m'en dis des nouvelles", ce qui implique de ne pas répondre "nan mais ça je connais pas, moi je VEUX comme ça" (à noter que le verbe vouloir est très très déconseillé ici comme partourt d'ailleurs)
"vous bafouez les droits de l'home"
=> Non. Par contre, toi tu bafouilles.
*** : en fait, je veux pas savoir la réponse, je n'ai pas spécialement de temps à perdre à lire tes arguments que je sais d'avance pas convainquants.http://www.mx-dev.net
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 26 juin 2008 à 19:09
"Un fichier texte, rien n'est caché, c'est pas le cas d'un binaire où des informations apparaissent pas en clair."
oublis ce que tu pense croire comme etant vrai.
on peu cacher aussi bien des informations dans un fichier texte brut. et ne rien cacher du tout dans un binaire.
"ha bon" vas tu dire ... oui, et cette technique est apparue au debut de l'informatique, afin d'eviter une lecture directe d'un fichier avec les commandes "type" ou "read" des os en ligne de commandes.
il suffit d'ajouter des ETX, BS, VT pour que l'affichage soit interrompus ou tronqué.
mais ce n'etait valable qu'a l'epoque ou l'interface graphique etait encore qu'une utopie, donc a l'epoque du DOS.
il est certain que quand on parle richedit, memo, ou notepad de windows, on se limite au caracteres numerique, alphabetique, de ponctuation etc. ce qui est humainement lisible. c'est pas faux. mais les caracteres dit de control ou etendus pourront tout de même etre affiché, tant que la police d'affichage selectionnée en est capable (police system, terminal ou shell).
c'est ce que les "coders" utilise pour faire de l'ascii art dans les fichiers NFO, fichier qui sont en text brut, lisible dans n'importe quel notepad.
mais un binaire n'en est pas pour le moins lisible grace a autre chose. un editeur hexadecimal, ou même un editeur de texte comme notepad++ qui affiche les caracteres non-humain :)
peu importe le format, tant qu'il n'y a pas d'encodage precis, un fichiers reste une suite de code hexadecimaux pouvant etre lus facilement et donc interprété sur une table ascii ou sur n'importe qu'elle table de caracteres.
par contre, un fichier RTF ou DOC qui possede un encodage special voir parfois une compression, ne peuvent pas etre lus autrement que par un programme specialisé (word, work, writer, wordpad etc).
donc pour ton probleme, il serait plus "secure" d'ecrire en format DOC par exemple que d'ecrire en text brut ou en binaire sans transformation.
pour ce qui est du savetofile, si tu avait pris la peine de faire un click droit sur ce mots et "chercher la delaration", tu aurait remarqué qu'il se presente comme suis :
procedure TStrings.SaveToStream(Stream: TStream);
var
S: string;
begin
S := GetTextStr;
Stream.WriteBuffer(Pointer(S)^, Length(S));
end;
ici on recupere le contenus de TStrings, et on le sauvegarde tel quel, aucune verification du contenus de S ...
alors bien sur, si on inclus des caracteres EOF, CR, LF, NUL ou ETX, cela risque de deranger la fonction Length(S) qui renverra une taille erronée et plus courte que la veritable longeur de S.
donc effectivement oui, si tu ouvre un executable (qui contient enormenent de caractere cité precedement), si tu fait un savetofile la dessus, oui, ça vas enregistrer un fichier plus court bref le corrompre.
mais, par contre, les données du fichiers sont bien lue par LoadFromFile (voir plus bas), donc si le fichier ouvert, contient du texte en clair, même si le memo ou richedit ou listbox sont incapable d'afficher nativement les caracteres speciaux, il affichera neanmoins le texte en clair plus ou moins bien.
ce qui "securitativement" n'est pas super top.
par contre, rien ne t'empeche de deriver le loadfromstream et le savetostream de TStrings
et de modifier la façon dont il lit les fichiers, on peu même le rendre incapable de lire du texte brut.
en gros :
procedure TStrings.SaveToStream(Stream: TStream);
var
S: string;
begin
if (enregistrement codé) then
begin
{ encodeur }
end
else
begin
S := GetTextStr;
Stream.WriteBuffer(Pointer(S)^, Length(S));
end;
end;
et
procedure TStrings.LoadFromStream(Stream: TStream);
var
Size: Integer;
S: string;
begin
BeginUpdate;
try
if (lireencodé) then
begin
{ decodeur }
end
else
begin
{ determination de la taille de S par rapport au contenus du stream, un stream peu contenir n'importe quoi ... }
Size := Stream.Size - Stream.Position;
SetString(S, nil, Size);
{ une lecture, brute, sans verification... jusque la, S contient tout ce qui est dans le fichier }
Stream.Read(Pointer(S)^, Size);
{ c'est la que ça peu poser probleme, si S contient un NUL avant la veritable fin de S, on transmet une ligne tronquée voir rien du tout si
NUL se trouve en premiere position.
c'est ce fonctionnement qui peu nous interréssé (voir plus bas)
}
SetTextStr(S);
end;
finally
EndUpdate;
end;
end;
on vois que loadfromfile utilise une variable String (chaine a zero terminal) donc si un caractere NUL apparait avant celui qui est a la fin, le reste de la chaine apparait comme tronqué.
pourtant, en memoire, S contient toujours ce qui a été lus!
même si nativement TStrings est incapable de gerer cela, nous on le peu!
il suffit de lire S en utilisant la taille initiale du stream qui a été lu.
alors certe, si on utilise la version donnée par florenth, on est presque dans le bon.
on ajoute une signature mais est-ce que cela fait vraiment ce qu'on attend ?
reponse non.
par contre si on fait :
procedure Save(const FileName: string; Strings: TStrings);
var
Signature : cardinal;
FlxZ : TZCompressionStream; { ZLibEx }
FlxF : TFileStream;
S : String;
Sz : integer;
begin
Signature := $004E4942; // B+I+N+NULL
S := Strings.GetTextStr;
Sz := Length(S);
hop, on obtient notre propre format de fichier, compréssé (bonus). donc vraiment illisible par n'importe quel notepad, même evolué.
bon par contre, un cracker trouvera trés vite la structure du fichier sgn+original size+block compréssé par zlib.
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 26 juin 2008 à 19:16
Florenth,
Je ne suis pas HS, ce que j'utilise est certe vieux, mais c'est sur ce sujet que je faisais ma demande et pas sur l'utilisation des Streams, le problème étant que vous voulez m'OBLIGER à utiliser les streams alors que je ne veux pas.
La raison ?
J'ai déjà tenté de l'utiliser et à chaque fois cela foire, alors plutôt que me cassé la tête dessus, je préfère que mon projet sorte avec la première version en utilisant les blocs et voir pour les prochaines avec les streams.
Pour info, la sortie de mon programme fût reporté depuis plusieurs mois pour différents problèmes notemment avec Windows, et y a déjà une panoplie de personne au courant du projet et qui attendent la sortie avec impatience, comme je m'en sert avec BlockRead et BlockWrite, autant sortir la première version avec, la seconde version intègrera les streams là y auras aucun soucis vu que le programme sera déjà utilisable, donc je pourrais passer tous le temps requis.
Oui le SaveToStream le permet j'ai pas dit le contraire, j'ai d'ailleur dit sur mon poste précédent (désolé d'ailleur pour la geulente de mes deux autres posts mais vous m'avez un peu énervé), que je suis d'accord que cette fonction me permet de le faire puisque utilisant les Streams.
Toutefois Jlen100 dans la page 2 (premier post de la page), m'affirme que se que je peux faire est possible avec le SaveToFile, j'ai tenté gentiment de lui expliquer que cette fonction ne permettait pas ce que je veux, et il a insisté en disant que si que c'est moi qui connais rien et il m'a cité la doc.
A aucun moment il m'a parlé du SaveToStream et si il en avait parlé, il aurait eu la même réponse : "Je ne métrise pas les Streams, je préfère donc continuer pour le moment avec BlockRead et BlockWrite".
Je ne vois pas où je suis fainéant, j'avais un problème, j'ai cherché sur google, sur phidels et ici et j'avais pas la réponse, donc je suis venu demandé de l'aide sur le forum c'est normal.
On m'a de suite répondu d'utiliser les Streams, avec un exemple et j'ai répondu que je préfère BlockRead et BlockWrite, ensuite Cirec m'a donné un exemple suivant donc ce que je demandais et je l'ai remercié pour m'avoir aider.
Tu dis ne pas vouloir lire mes arguments qui pour toi ne sont pas convainquant, donc pour toi si je n'utilise pas les streams ben je mérite pas d'avoir le droit de demander de l'aide.
J'ai demandé de l'aide sur un truc particulier, et on me répond avec une autre méthode (les streams), j'insiste sur ma demande avec BlockRead/BlockWrite car c'est ce que je métrise le plus entre les deux.
Je reçois une réponse qui m'aide, je remercie la personne.
Jusque là tous va bien, ensuite on vient me dire d'utiliser SaveToFile, je dis que cette fonction ne correspond pas à ce que je veux faire vu que cela permet d'enregistrer UNIQUEMENT le contenu du composant en question et non d'écrire un fichier binaire (dans mon cas c'est un fichier d'archivage sans compression du moins pour le moment).
Et là, la personne me répond en citant la doc et en disant que sois-disant c'est bien cette fonction que je dois utiliser alors que toi même tu reconnais que se serait SaveToStream, donc pas de SaveToFile.
Si maintenant tu veux pas lire mon message, ne le lis pas, je t'oblige pas.
Ce qui est sur c'est que je m'excuse pour avoir geuler, et là mon message n'est ni insultant ni déplacé ni rien de non conforme à ce que l'on attend d'un message sur un forum.
Je ne fais que répondre gentiment à ton message et je te donne les raisons de mon choix de BlockRead/BlockWrite c'est tous.
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 26 juin 2008 à 19:23
Foxi,
Je suis d'accord sur le fait que SaveToFile utilise les streams, toutefois si tu regardes en profondeur, il ouvre le fichier et enregistrer dedans puis le ferme, donc impossible d'inscrire des informations avant et après a moins de taper plusieurs lignes de code supplémentaires, donc cela ne peut pas correspondre à mes besoins, on en revient donc aux solutions suivantes :
- Utiliser un stream
- Utiliser l'ancienne méthode : blockRead et BlockWrite
Comme dit sur mon message juste plus haut (j'ai pas pu voir le tiens avant), j'ai fait ce choix afin de ne pas devoir attendre encore des mois avant de sortir mon produite, la prochaine version intégrera certainement les streams car je sais que c'est plus pratique, toutefois c'est pas le sujet du jour.
De toute façon, j'ai eu une réponse de Cirec, et je l'ai remercié pour sa réponse qui m'a permis d'avanccé et qui fait que mon programme est quasiement terminé.
Donc je vois pas le soucis, j'ai demandé de l'aide, on m'a parlé des streams, j'ai pris note qu'il vaut mieux s'en servir, j'ai eu la réponse à ma demande de base, l'auteur de la solution à était remercié.
Pourquoi continuer sur cela ?
procedure Load(const FileName: string; Strings: TStrings);
var
Signature : cardinal;
FlxZ : TZDecompressionStream; { ZLibEx }
FlxF : TFileStream;
S : String;
Sz : integer;
begin
FlxF := TFileStream.Create(FileName, fmOpenRead);
try
FlxF.Read(Signature, 4);
if Signature = Sign then
begin
FlxF.Read(Sz, 4);
FlxZ := TZDecompressionStream.Create(FlxF);
try
SetString(S, nil, Sz);
FlxZ.Read(pointer(S)^, Sz);
Strings.SetText(PChar(S));
finally
FlxZ.Free;
end;
end
else
begin
FlxF.Position := 0;
Strings.LoadFromStream(FlxF);
end;
finally
FlxF.Free;
end;
end;
on obtient cela :
un chouille deja plus efficace.
en fait j'ai marqué "encodage/decodage" mais c'est de la compression toute simple.
suffirait de passer cela dans une moulinette et hop, voir ma source HRot par exemple.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 26 juin 2008 à 20:13
"Pourquoi continuer sur cela ?"
1) pour t'aider.
2) parce que le sujet m'interresse
3) parce que j'aime bien donner mon avis même si personne ne vas le lire
4) mmm ... non c'est tout.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 26 juin 2008 à 20:37
ah oui, sinon, evite de te sentir agressé a la moindre remarque.
n'oublis pas que sur le net on ne peu voir notre interlocuteur et donc les remarques de type "vanne" ou "humour" ou encore "gentille" peuvent parfois apparaitre comme agressive ou mal venue, impolie etc.
n'oublie pas que si tu pense voir une agression, considere la comme un malentendus et réitère tes propos sous un forme plus adequate voir ajoute quelques smileys pour preciser la portée de tes propos.
exemple :
arretez de me prendre pour un con (pas content)
et
arretez de me prendre pour un con (vexé, choqué)
et
arretez de me prendre pour un con (bon je sais, je debute et je dois dire des betises)
voila trois phrase identique mais n'ayant pas la même portée.
ensuite, quand les gens te repondent, n'oublie pas qu'ils prennent du temps pour t'aider.
moi j'ai pris 1 heure pour tester et te repondre, les autres on pris egalement du temps.
donc evite d'avoir d'etre penible avec eux, modere tes propos et respecte ce temps qu'ils te consacrent.
car un jours, toi aussi tu aidera quelqu'un et tu sera content que cette personne respecte ton sacrifice (même petit)... mets toi a notre place, personne n'est content quand on l'envoie chier alors qu'on est en train de l'aider.
n'oublie pas ça et tout ira pour le mieux.
et n'oublie pas non plus :
l'impatience est l'ennemie du bon-sens.
l'impatience est l'ennemie du developpeur.
l'impatience est l'ennemie de la qualité.
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 26 juin 2008 à 20:48
Comme dit plus haut foxi, je m'excuse de m'être emporté, tous est partis du fait que l'on me disait d'utiliser le SaveToFile ce qui ne correspond pas à ma demande.
Pour ta source sur le TFileStream, merci, je l'étudierais sitôt que j'aurais sortie la première version de mon programme afin de le migrer vers cette méthode plutôt que celle que j'ai choisis.
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 27 juin 2008 à 00:57
Je poste ici car cela reste dans le sujet.
Dans le même registre que pour enregistrer, je souhaite pouvoir lire (toujours avec mon BlockRead) dans le fichier.
Je veux que la variable prenne la taille des données à lire dans le fichier, j'ai donc pensé à un Array of Char auquel j'affecte la taille en question.
Mais voici l'erreur :
Le projet FicEditor.exe a provoqué une classe d'exception EInOutError avec le message 'Lecture au-delà de la fin de fichier'.
Et voici le code :
procedure FEFFormat.ReadFileXML(var Character: String; var Place: String;
var Idea: String; var Fic: String);
begin
BlockRead(F, CRCFile, 4);
BlockRead(F, SizeFile, 4);
FileXML est du type Array of Char.
J'ai tenté avec un Array [1..34] of Char et ça fonctionne sans problème.
donc j'en déduit que le soucis provient du Dynamic Array.
Merci d'avance pour l'aide.
P.S.: Le 34 correspond à la taille des données que je veux lire dans le fichier d'exemple.
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 27 juin 2008 à 10:47
Cantador,
Un exemple parfait pour montrer que ma présence semble indésirable ici.
Tu EXIGE que j'utilise VOS méthodes avant de venir poster, ce qui est inadmissible.
Je suis pas revenu à la charge, le sujet du topic parle du dynamic array, hors le problème se situe a ce niveau là, je pourrais utiliser les streams cela changerais rien, je ne connais pas à l'avance la taille du texte à extraire de mon fichier, cela est connu par une donnée codé sur 4 octets dans le fichier avant le texte en question, je peux quand même pas réserver en mémoire une place de 2Go pour du texte, soyons réaliste, le mieux est de mettre la variable à la bonne taille.
Hors ici ce qui foire c'est justement cela c'est pas le BlockRead qui fait foiré mais bien le Dynamic Array.
Enfin bon, j'aurais mieux fait de me faire, c'est finalement ce que je vais faire.
P.S.: Je remarque quand même que je me suis excusé de m'être emporté, j'ai cru l'incident clos.
Je viens poser un problème avec un Dynamic Array et on me répond par de l'insolence en me disant d'étudier ce qui fût dit alors que cela ne parle pas du présent problème.
J'aurais jamais cru qu'un site aussi sérieux ferait tous pour se débarrasser des autres et rester dans une petite communauté de 3 ou 4.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 27 juin 2008 à 11:13
Franchement, tu m'as l'air bien excité et tu devrais faire un effort de lecture..
Bien au contraire, ma démarche étant dans le sens de l'apaisement et non l'inverse :
"je propose"..
et toi tu traduis pas "Tu EXIGE".
Comment veux-tu que dans ces conditions, il puisse y avoir un dialogue..
et puis, cela me semble normal de respecter les règles établies lorsqu'on
arrive dans une communauté.
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 27 juin 2008 à 11:20
-> [auteur/F0XI/360948.aspx f0xi] vient
justement de te faire un cours sur la façon de déterminer les fins
de fichier et lis aussi la petite phrase de Caribensila.
Tu commences par me dire de lire ce que disent les autres, hors je dis bien que mon code fonctionne parfaitement avec un Array of char normal mais en Dynamic Array cela foire.
Le message de Foxi montre l'utilisation du stream mais pas comment utiliser un Dynamic Array, hors cela est bien le sujet du topic, donc ma demande est correspondante au topic.
Je vois pas où tu proposes puisque texto tu me dis d'aller lire les posts des autres qui ont rien à voir avec le Dynamic Array.
->Comment veux-tu que dans ces conditions, il puisse y avoir un dialogue..
et puis, cela me semble normal de respecter les règles établies lorsqu'on
arrive dans une communauté.
Justement, y a une règle assez importante : On s'en tiens au sujet du topic.
Hors ici, le topic est pour de l'aide sur un Dynamic Array, ma demande porte dessus et tu me répond d'aller lire les posts des autres parlant nullement du Dynamic Array mais uniquement des streams.
Le dialogue est donc impossible, je suis venu poliment demander de l'aide sur un sujet correspondant bien au topic, et tu me répond dans des conditions déplorables.
Comment veux-tu dans ses conditions là que je garde mon sang-froid ?