06. maj 2002 - 20:41Der 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
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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;
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.
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;
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.
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;
Synes godt om
Ny brugerNybegynder
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.