Ecrire du texte dans un fichier binaire [Résolu]

Signaler
Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
-
Messages postés
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
-
Bonjour à tous,
Je suis entrain de faire un programme qui utilise les fichiers binaire.
Pour faire le programme, j'ai opté pour l'utilisation de BlockRead et BlockWrite.

Mais je me heurte à un problème avec BlockWrite.
Mon programme créés des fichers archives(donc binaire) dans le format PAK(format utilisé pour Quake et Half-Life 1).
Comme les fichiers placé dans l'archive sont créés via le programme, je voulais les enregistrer directement dans l'archive.
Le problème, c'est que je ne peux mettre le contenu d'un TEdit avec BlockWrite(la propriété .Text n'apaprait pas).
J'ai donc tenté en lui donnant uniquement la variable du TEdit que j'ai appelé: EName, puisque je ne peux pas mettre EName.Text.
Mais quand je regarde le contenu du fichier archive, le texte n'est pas écrit en clair, hors il faut qu'il soit écrit en clair.

Je voudrais donc savoir comment faire.
En fait, mon programme est un logiciel de carnet d'adresse assez complet, mais gérant plusieurs fichiers afin que plusieurs personnes utilisant le même PC, puisse avoir son propre carnet d'adresse.
Et donc pour cela, j'ai choisi d'utiliser le format PAK de Half-Life 1 et Quake, dans lequel je met des fichiers au format texte(.TXT) ayant le nom et le prénom donné dans le carnet d'adresse, ensuite le contenu du fichier texte contient tous les champs remplis dans le logiciel.

Si vous avez besoin de voir le code que j'ai pour le moment afin de pouvoir m'aider, dite le moi et je vous le poste .
Merci d'avance à ceux qui pourront m'aider.

2 réponses

Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
4
Problème résolu, il me faut utiliser des shortstring.
Messages postés
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
29
tu peu utiliser PChar pour les string :

var
   PS : PChar;
begin
   PS := PChar(Edit1.Text);
   writebuffer(PS^, Length(Edit1.Text));
end;

<hr size="2" width="100%" />Croc (click me)