begin process at 2010 03 21 06:54:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Aide et documentation

 > 

Passer d'un String à un dynamic Array et inversement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passer d'un String à un dynamic Array et inversement

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ée 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 Evennement et Array, Comment avoir évenement quand une valeur d'une array change ? [ par ptitjib ] Comment avoir un évenement quand une valeur d'une array change ?Voici un exemple concret qui ne fonctionne pas, j'aimerais comprendre pourquoi et savo avoir une explication sur uen portion de code [ par davidc ] Bonsoir, je désirerais avoir une explication assez détaillée pour la portion de code en rouge  Merci:function TForm1.DecodeMSKey(const HexSrc: array o


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales