Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 916 fois - Téléchargée 39 fois
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Button1: TButton; Memo1: TMemo; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure SaveStream(Save: TMemoryStream; const Str: string); function SeparatorStream(const Sep: string; const FullString: string; Position: integer): string; end; var Form1: TForm1; implementation {$R *.dfm} // procédure pour sauver du texte dans un stream et ajouter un séparateur procedure TForm1.SaveStream(Save: TMemoryStream; const Str: string); var // Création d'un tableau de caractères lpszbuf: array[0..100] of char; begin StrPCopy(lpszbuf, Str); //Prendre la valeur de Str et la copier dans lpszbuf StrCat(lpszbuf, '###'); //Ajouter ### à lpszbuf Save.Write(lpszbuf, length(Str) + 3); //Ecrire dans Save de type TMemoryStream la valeur de lpszbuf end; procedure TForm1.Button1Click(Sender: TObject); var SaveStr: TMemoryStream; begin SaveStr:= TMemoryStream.Create; //Création de SaveStr SaveStream(SaveStr, Edit1.Text); //Ajouter le texte Edit(n).Text dans SaveStr à l'aidre SaveStream(SaveStr, Edit2.Text); //de la procédure SaveSteam SaveStream(SaveStr, Edit3.Text); SaveStream(SaveStr, Edit4.Text); SaveStream(SaveStr, Edit5.Text); SaveStream(SaveStr, Edit6.Text); SaveStream(SaveStr, Edit7.Text); SaveStream(SaveStr, Edit8.Text); SaveStr.Position:= 0; //Remettre la position du flux dans le stream à 0 Memo1.Lines.LoadFromStream(SaveStr); //Charger dans Memo1 les infos qui se trouvent dans SaveStr SaveStr.Free; //Libèrer la mémoire end; // fonction servant à séparer chaque champs créer avec le séparateur dans // la procédure SaveStream function TForm1.SeparatorStream(const Sep, FullString: string; Position: integer): string; var sTemp: string; anIndex, aPos: integer; begin Result:= ''; anIndex:= 0; //Mettre anIndex à 0 sTemp:= FullString; //Mettre la valeur de FullString dans sTemp aPos:= Pos(Sep, sTemp); //Donner à aPos la position de Sep dans sTemp //Boucle de séparation des champs dans le stream while (aPos > 0) and (anIndex < Position) do begin Delete(sTemp, 1, aPos - length(Sep) + aPos - 1); aPos:= Pos(Sep, sTemp); inc(anIndex); end; aPos:= Pos(Sep, sTemp); if aPos > 0 then Delete(sTemp, aPos, length(sTemp) + aPos - 1); Result:= sTemp; end; procedure TForm1.Button2Click(Sender: TObject); var OpenString: TMemoryStream; aData, aPart: string; begin OpenString:= TMemoryStream.Create; //Créer le stream OpenString Memo1.Lines.SaveToStream(OpenString); //Sauver dans OpenStream le texte qui ce trouve //dans le memo1 aData:= StrPas(OpenString.Memory); //Convertit une chaîne terminée par le caractère Null //en une chaîne Pascal et la mettre dans aData. //Mettre dans aPart la valeur de aData après avoir été travailler par la fonction //SeparatorStream aPart:= SeparatorStream('###', aData, 0); //Mettre la valeur de aPart dans le Label1.Caption Label1.Caption:= aPart; aPart:= SeparatorStream('###', aData, 1); Label2.Caption:= aPart; aPart:= SeparatorStream('###', aData, 2); Label3.Caption:= aPart; aPart:= SeparatorStream('###', aData, 3); Label4.Caption:= aPart; aPart:= SeparatorStream('###', aData, 4); Label5.Caption:= aPart; aPart:= SeparatorStream('###', aData, 5); Label6.Caption:= aPart; aPart:= SeparatorStream('###', aData, 6); Label7.Caption:= aPart; aPart:= SeparatorStream('###', aData, 7); Label8.Caption:= aPart; OpenString.Free; //Libère la mémoire de OpenString end; end.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.