Avatar billede wizardry007 Nybegynder
12. juni 2002 - 08:23 Der er 5 kommentarer og
1 løsning

oprettelse af html uden memo

jeg har lavet et program som udfra nogle thumbnails laver et dynamisk htmldokument i et memo som så skrives til en htmlfil. Problemmet er nu at jeg har flere linjer htmlkode end der er plads til i mit memo og derfor bliver de sidste linjer bare ikke skrevet med når kodene skal skrives til htmlfilen. Nogen derud som har en ide til hvor man kan lave HTML dokumentet på en anden måde evt, ved at skrive direkte til filen udenom memokomponentet.
Avatar billede pellelil Nybegynder
12. juni 2002 - 08:51 #1
Bruger du: Memo1.SaveToFile('C:\filnavn.htm');  eller skriver du på en anden måde ?

Du kan også tilgå filen som en TextFile:

var
  f: TextFile;
begin
  if OpenDialog1.Execute then
  begin                    { open a text file }
    AssignFile(f, OpenDialog1.FileName);
    Append(f);
    Writeln(f, 'I am appending some stuff to the end of the file.');
    { insert code here that would require a Flush before closing the file }
    Flush(f);  { ensures that the text was actually written to file }
    CloseFile(f);
  end;
end;
Avatar billede pellelil Nybegynder
12. juni 2002 - 08:53 #2
Jeg skal lige uddybe at ovenstående eksempel (fra Delphi's Hjælp) tilføjer en linie til en bestående fil. Hvis du vil skrive hele filen fra scratch på denne måde så skal du i stedet for Append bruge ReWrite
Avatar billede borrisholt Novice
12. juni 2002 - 09:00 #3
Du kan også bruge en TStringList.



Jens B
Avatar billede wizardry007 Nybegynder
12. juni 2002 - 09:07 #4
ja jeg bruger Memo1.SaveToFile('C:\filnavn.htm');
Avatar billede wizardry007 Nybegynder
12. juni 2002 - 09:16 #5
har prøvet begge muligheder og jeg syntes faktisk at TSTringlisten kørte bedst , takker begge to !
Avatar billede borrisholt Novice
12. juni 2002 - 09:30 #6
Har du brug for STORE mængder data (1 mb og op) så brug en stream :

type
  TMyStringStream = class(TStringStream)
  public
    Procedure SaveToStream(aStream : TStream);
    procedure SaveToFile(const FileName: string);
  end;

{ TMyStringStream }

procedure TMyStringStream.SaveToFile(const FileName: string);
var
  Stream: TStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    SaveToStream(Stream);
  finally
    Stream.Free;
  end;
end;

procedure TMyStringStream.SaveToStream(aStream: TStream);
begin
  if Size <> 0 then
    aStream.Write(PChar(DataString)^, Length(DataString));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  aStream : TMyStringStream;
begin
  aStream := TMyStringStream.Create('');
  aStream.WriteString('<HTML>');
  aStream.WriteString('<BODY>');
  aStream.WriteString('');
  aStream.WriteString('<H1>Pellelil er en hest</H1>');
  aStream.WriteString('<BODY>');
  aStream.WriteString('</HTML>');
  aStream.SaveToFile('C:\Pelle_Er_En_Hest.htm');
  aStream.Free;
end;

Jens B
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