Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Passer d'un String à un dynamic Array et inversement [ Divers / Aide et documentation ] (christophedlr)

mercredi 25 juin 2008 à 22:16:06 | Passer d'un String à un dynamic Array et inversement

christophedlr

Membre Club
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.

mercredi 25 juin 2008 à 22:43:08 | Re : Passer d'un String à un dynamic Array et inversement

cantador

Membre Club

Bonsoir,

et si tui écrivais simplement :

RichEdit1.Lines.SaveToFile('c:\monfichier.rtf'')
RichEdit1.Lines.LoadFromFile('c:\monfichier.rtf'')

non ?

cantador


mercredi 25 juin 2008 à 22:44:33 | Re : Passer d'un String à un dynamic Array et inversement

christophedlr

Membre Club
C'est bien pour sauvegarder dans un fichier texte, mais pas dans un binaire.

mercredi 25 juin 2008 à 23:23:12 | Re : Passer d'un String à un dynamic Array et inversement

cantador

Membre Club
L'objectif est bien de conserver le fomat.
il fallait bien donner la solution la + simple..
autre piste :
stocker tes données dans un champ BLOB d'une table.

cantador

mercredi 25 juin 2008 à 23:37:41 | Re : Passer d'un String à un dynamic Array et inversement

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

comme ça peut être:

procedure TForm1.Button1Click(Sender: TObject);
var fs: TFileStream;
begin
  fs := TFileStream.Create('Mon_fichier.bin',  fmCreate);
  try
    fs.WriteBuffer(PChar(RichEdit1.Lines.Text)^, Length(RichEdit1.Lines.Text));
  finally
    fs.free;
  end;
end;


 
@+
Cirec


mercredi 25 juin 2008 à 23:48:23 | Re : Passer d'un String à un dynamic Array et inversement

christophedlr

Membre Club
Ouais mais là tu utilises les Streams hors j'ai jamais réussi à m'en servir.

mercredi 25 juin 2008 à 23:55:07 | Re : Passer d'un String à un dynamic Array et inversement

cirec

Membre Club Administrateur CodeS-SourceS
ou encore,

procedure TForm1.Button2Click(Sender: TObject);
var fs: TFileStream;
begin
  fs := TFileStream.Create('Mon_fichier.bin',  fmOpenReadWrite);
  try
    fs.Seek(0, soFromEnd);
    RichEdit1.Lines.SaveToStream(fs);
  finally
    fs.free;
  end;
end;

ce code ouvre le fichier 'Mon_fichier.bin' et ajoute le contenu du RichEdit1 à la fin du fichier.

voiolà avec tout ça tu devrais y arriver
 
@+
Cirec


mercredi 25 juin 2008 à 23:57:40 | Re : Passer d'un String à un dynamic Array et inversement

cirec

Membre Club Administrateur CodeS-SourceS
ben c'est simple et en plus tu as deux démos

la première crée un le fichier (si il existe déjà il est écrasé)
et la deuxième ouvre le fichier pour lire et ajouter des données c'est simple

c'est comme ce que tu utilises mais en beaucoup mieux

 
@+
Cirec


jeudi 26 juin 2008 à 01:28:01 | Re : Passer d'un String à un dynamic Array et inversement

christophedlr

Membre Club
Avec les Stream, c'est sur qu'il y aura pas le soucis d'enregistrement rencontré avec blockWrite qui oblige a passer par des Array of ?

jeudi 26 juin 2008 à 03:20:58 | Re : Passer d'un String à un dynamic Array et inversement

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
"Avec les Stream, c'est sur qu'il y aura pas le soucis d'enregistrement rencontré avec blockWrite qui oblige a passer par des Array of ?"

pffffffff ...

procedure TForm1.Button3Click(Sender: TObject);
Var F : File; N : Integer;
begin
  AssignFile(f, 'f:\test.dat');
  try
    Rewrite(f,1);
    BlockWrite(f, PChar(RichEdit1.Lines.Text)^, Length(RichEdit1.Lines.Text), n); 
  finally
    Closefile(f);
  end;
end;

quand je te dit : "c'est comme ce que tu utilises mais en beaucoup mieux"

teste avant de revenir à la charge

Mais il est préférable d'utiliser les Streams
 
@+
Cirec



1 2 3 4 5

Cette discussion est classé dans : array, passer, char, of, dynamic


Répondre à ce message

Sujets en rapport avec ce message

Incompatibilité des chaines [ par Kane ] Bonjour,j'appel une API à qui l'on founit un enregistrement qui possede un parametre array [0.63] of char. Hors je n'arrive pas a faire une affectatio Array dynamique [ par vincentstryckmans ] Bonjour, Je souhaite passer comme argument d'une procédure une array dynamique multidimensionnelle. Voici le code : procedure rafraichir_treeRespons Comment passer un tableau de Strings à une fonction [ par Freeskieur ] Bonjour, Je sais pas comment passer un tableau de strings à 2 dimensions à une fonction et ca commence à me vraimment me prendre la tête. Merci à ceu champs de variable record non visibles [ par Jean_Jean ] Bonjour, Après un an d'absence, j'ai besoin de m'y remettre car je butte sur quelque chose de simple apparemment:J'ai défini une structure de d Array of procedure, c'est possible ? [ par DeltaFX ] Yo,bande de coderz,Je me pose  un question : j'ai un prog qui utilisele TcyPictureArea de Mauricio, et pour résumer (pour ceux qui connaissent pas), c Arguments d'une procédure/fonction restreints [ par Slander ] Bonjour à tous et toutes...Me voilà devant un petit problème et je voudrais savoir si il existe une solution pour le résoudre...Code de mon programme: Codage des entiers [ par Aurel184 ] Bonjour,je développe une interface en Delphi permettant de contrôler par réseau ou port série des vidéoprojecteurs professionnels. Quand j'envoi une c Dynamic Array renvoyant une erreur de lecture [ par christophedlr ] Bonjour,Je souhaite pouvoir lire dans un fichier.Je veux que la variable prenne la taille des données à lire dans le fichier, j'ai donc pensé à un Arr caster une variable d'un tableau de tableau de tableau [ par justevero ] Bonjour, j'ai du creer 3 types pour attribuer des dimensions differentes a chacunes de mes colonnes de tableau de real type Tableau1= Array of rea tableau dynamique [ par karakvb ] Bonjour, j'ai un probleme avec l'utilisation,de tableau dynamiques.En faite voila ds mon code je rempli un tableau dynamique, que je sauvegarde dans u


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.