Newbe problem i Delphi
Hej ExperterJeg har skrevet følgende kode, som indhenter en textfil med kommaer i. Disse bliver placeret i et memo, hvilket virker fint. Jeg har videre lavet en knap der gerne skulle lave alle kommaer i memoen om til punktumer. Jeg synes at have prøvet alt muligt, men det virker ikke rigtigt. Jeg har prøvet blot at overskriver tegnet, men det er ligsom jeg kun kan ændre linjen og ikke selve tegnet. Jeg har envidere prøvet at slette tegnet ved hjælp af Delete, men den sletter blot hele linjen.
Proceduren skal laves for: procedure TForm1.BtnKommaClick(Sender: TObject);
Jeg ved ikke om det kan lade sig gøre i et memo, men hvis ikke er der nogen som kan lave det om således at den indlæser i noget andet og bedre?
unit MissionImpossibleu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
MemData: TMemo;
LblKommaer: TLabel;
BtnKomma: TButton;
BtnLoad: TButton;
BtnSave: TButton;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
ListBox1: TListBox;
Label1: TLabel;
Label2: TLabel;
procedure BtnKommaClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure BtnLoadClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BtnKommaClick(Sender: TObject);
var I, J, kommaer, Position :integer;
StrToSearch, ReplaceStr: string;
begin
kommaer := 0; //tæller kommaer
StrToSearch := MemData.Text;
ReplaceStr := '.';
for I := 0 to MemData.Lines.Count do //søger i linier i teksten
begin
for J := 1 to length(MemData.Lines[I]) do //søger i tegn i linie I
begin
If MemData.Lines[I][J] = ',' then
begin
Label1.Caption := MemData.Lines[I][J];
// Her er problemet
kommaer := kommaer + 1;
;
end;
lblKommaer.Caption := IntToStr(kommaer);
end;
end;
end;
procedure TForm1.BtnSaveClick(Sender: TObject);
var F1 : TextFile;
begin
if SaveDialog.Execute then begin
MemData.Lines.SaveToFile(SaveDialog.FileName);
end;
end;
procedure TForm1.BtnLoadClick(Sender: TObject);
var K, I, tmp : integer;
begin
if OpenDialog.Execute then
MemData.Lines.LoadFromFile(OpenDialog.Filename);
for I := 1 to 100 do
for K := 0 to MemData.Lines.Count do
if K = 10 * I - 1 * I then
MemData.Lines.Delete(K);
end;
end.
