Avatar billede kraftpeger Nybegynder
22. august 2002 - 12:45 Der er 8 kommentarer

Firkant i tekstfil

Når jeg laver en tekstfil, hvor jeg fx skriver "hej" så er der en sort firkant foran (når man senere læser den fra notepad).
Den skal bruges til kom. med et økonomisystem og så går det ikke med den firkant.

Er der nogen der ved hvordan man fjerner denne firkant?

Mvh Prehn (Kraftpegeren)
Avatar billede x-masman Nybegynder
22. august 2002 - 12:51 #1
firkanten er ofte tegn på linjeskift, tab eller lign. Er der det før hej?
Avatar billede martinlind Nybegynder
22. august 2002 - 13:08 #2
Firkanter i notepad betyder "bare" at den ikke synes den kan vise det tegn, det kan være hvad somhelst, jeg vil foreslå dig enten at bruge Type <myfile> i en dos-shell eller bruge en HexEditor til at se hvad filen faktisk indeholder, du kan også prøve at åbne den med delphi's editor ( du trækker den bare fra stifinder ind på delphi's editor )

/Martin
Avatar billede dkn Nybegynder
22. august 2002 - 14:09 #3
kan man se det kode du bruger til at gemme med?

du kan evt prøve med en trimleft()
Avatar billede zimp Nybegynder
22. august 2002 - 19:44 #4
Måske er det din 0-terminering der kommer med?

Hvis du f.ex. skriver

Str := 'hej' +#0

og så

WriteLn(Filen, Str);

Så får du firkanten efter 'hej'
Avatar billede kraftpeger Nybegynder
26. august 2002 - 10:15 #5
Ok har er den kode jeg bruger til at skrive filen:

unit testFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    edtText: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  Str5= String[5];
  TTest = record
  T1 : str5;
  //T2 : str5;
  //T3 : str5;
  //T4 : integer;
end;

var
  Form1: TForm1;
  TestFil: File of TTest;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  T: TTest;
  procedure Skriv(TT1 : str5);// TT2: str5; TT3: str5; TT4: integer);
  begin
  with T do
  begin
    T1:= TT1;
    //T2:= TT2;
    //T3:= TT3;
    //T4:= TT4;
    write(TestFil, T);
  end;
end;
begin
  AssignFile(TestFil,'Test.txt');
  Rewrite(TestFil);
  Skriv('test1');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  F: TextFile;
  S: string;
begin
  AssignFile(Testfil,'Test.txt');
  Try
    Reset(Testfil);
    Readln(Testfil, S);
    edtText.Text:=S;
  Finally
    CloseFile(Testfil);
  end;
end;
//,'Test2','test3',4
end.


Jeg er ikke helt klar over hvad det er for en editor i delphi der er tale om?
Avatar billede martinlind Nybegynder
26. august 2002 - 10:39 #6
Den du bruger når du laver din source, det er faktisk en editor, men du behøver ikke, for det er fordi du skriver en record med ShortString så får du skrevet en længe-byte ned før hver streng.

VAR
  L : TStringList;
begin
  L := TStringList.Create;
  L.Add('Hest');
  L.Add('Gris');
  L.Add('Ko');
  L.SaveToFile('MyFile.txt');
  L.Free;
end;


Sådan kan du nemt og hurtigt skrive noget text til en fil, ellers skal du bruge en "TextFile" i stedet for en "File of Record"

/Martin
Avatar billede kraftpeger Nybegynder
26. august 2002 - 13:49 #7
Tak for det, point bliver givet til dig, men kan du ikke lige fortælle mig hvordan man så indlæser igen og hvordan man eventuelt kan sørge for at man ikke overskriver det der står i tekst filen, men derimod bare tilføjer?
Avatar billede x-masman Nybegynder
13. februar 2003 - 13:34 #8
luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester