Avatar billede cool-wil Nybegynder
06. maj 2002 - 20:41 Der er 8 kommentarer og
3 løsninger

String? eller hvad

Jeg sidder og laver et program som kan redigere i en httpd.conf fil (apache)

Jeg vil gerne lave nogle forskellige muligheder som f.eks. :

ServerRoot "C:/apache/Apache2" ( hvordan smidder jeg serverRoot ned i filen, og tilføjer stien til apache via f.eks. en tmemo eller en tedit? nogen ide?

Altså skal programmet smidde nogle ting der allerede står i conf filen der ned, og så nogle bruger inputs, som f.eks. overstående eksempel med stien til apache

nogle som kan hjælpe her?

wil/

Avatar billede martinlind Nybegynder
06. maj 2002 - 20:46 #1
Hvis Du ikke vil bruge TStrings så kan du gøre sådan :

VAR
  F : TextFile;
begin
  AssigFile(F,'Hest.txt');
  Reset(F); // Append(); Rewrite();
  WriteLn(F,'Heste');
  WriteLn(F,'Haster');
  WriteLn(F,'Slut');
  CloseFile(F);
end;
Avatar billede cool-wil Nybegynder
06. maj 2002 - 21:15 #2
Martinlind:
Assigfile er vel den fil jeg vil vise, men hvordan viser jeg den i f.eks. en trichedit? eller en tmemo?

Lidt flere kode eksempler kunne være fedest:-) jeg er jo stadivæk lidt newbiee til det her shit:-)

wil/
Avatar billede cool-wil Nybegynder
06. maj 2002 - 21:15 #3
hvad så hvis jeg vil bruge tstrings?
Avatar billede martinlind Nybegynder
06. maj 2002 - 22:00 #4
TStrings :
-----------

Memo1.Lines.LoadFromFile(<FileName>);
RichEdit1.Lines.LoadFromFile(<FileName>);

Gl. Dav's :
------------

VAR
  F : TextFile;
  Strx : String;
begin
  Memo1.Clear; 
  AssigFile(F,'Hest.txt');
  Reset(F); // Append(); Rewrite();
  repeat
    ReadLn(F,Strx); 
    Memo1.Lines.Add(Strx);
  until Eof(F);
  CloseFile(F);
end;
Avatar billede jarihj Nybegynder
07. maj 2002 - 15:48 #5
Det kan gøres langt enklere, og så bliver det endda vist med det samme:

begin
  memo1.lines.loadfromfile('hest.txt');
end;

NB: Kan give problemer hvis hver linje ikke er sluttet med \r\n = #13#10 = return, newline. Men da giver readln så vidt jeg husker også problemer. Så skal man til at søge igennem strengen for at indsætte det manglede tegn. Det er ikke almindeligt i alm tekst filer, men nogle programmer gør det.
Avatar billede jarihj Nybegynder
07. maj 2002 - 15:49 #6
Forresten, hvis du ikke ved hvor stor filen er, brug så richedit, da memo har max kapacitet på 32K:


begin
  richedit1.lines.loadfromfile('hest.txt');
end;
Avatar billede jarihj Nybegynder
07. maj 2002 - 15:53 #7
ups jeg har overset de martin's øverste linjer.

Men man kan også gøre det vha blockread. Det er MEGET hurtigt og der er eksempler i delphi. Desuden kan det bruges til alle filer.

eks:
var str : string;
begin
  str:=<BLOCKREAD-BLOCK>;
  richedit1.text:=str;
end;
Avatar billede jarihj Nybegynder
07. maj 2002 - 20:53 #8
Dette er et eksempel på en læsning af en fil til et TMemo-felt:

procedure TForm1.Button1Click(Sender: TObject);
var f : file; buf : array [1..1024] of char;
i, len, BytesRead : integer; str : string;
begin
  assignfile(f,'c:\tv.txt');
  reset(f,1);
  BytesRead:=0;
  len:=sizeof(buf);
  str:='';
  blockread(f,buf,len,BytesRead);
  while BytesRead=len do
  begin
    str:=str+buf;
    blockread(f,buf,len,BytesRead);
  end;
  str:=str+copy(buf,1,BytesRead);
  memo1.text:=str;
  closefile(f);
end;
Avatar billede borrisholt Novice
10. maj 2002 - 23:03 #9
jarihj >> Tmemo hear en max på 32kb under win 95/98 under windiws 2000/XP har den en berænsning på 2GB

JensB
Avatar billede jarihj Nybegynder
11. maj 2002 - 19:39 #10
JensB >> Ok, tak for korrekturen. Det skal nok passe. Det er længe siden, men sidst jeg arbejdede med Tmemo var faktisk i win98, men der havde jeg ganske rigtigt problemet.
Avatar billede cpjg Nybegynder
14. maj 2002 - 10:37 #11
Du kunne også gøre dette:

procedure TForm1.FormCreate(sender: TObject);
begin
memo1.lines.loadfromfile('C:/apache/Apache2/httpd.conf');
end;

procedure TForm1.Button1Click(sender: TObject);
var s : string;
begin
  s := edit1.text;
  memo1.lines.add(s);
  memo1.lines.savetofile('C:/apache/Apache2/httpd.conf');
end;
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