12. juni 2002 - 08:23Der 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.
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;
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
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
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.