Avatar billede cautoo Nybegynder
15. september 2001 - 19:43 Der er 28 kommentarer og
1 løsning

Stream

Hvordan kan man når man gemme en stream som et eller andet filnavn ligegyldigt hvilken filtype det er?
Avatar billede martinlind Nybegynder
15. september 2001 - 21:37 #1
Brug evt. en TMemoryStream og SaveToFile(); du kan bruge CopyFrom hvis du har data i en anden Stream

/Martin
Avatar billede cautoo Nybegynder
15. september 2001 - 22:18 #2
kunne du give et eks.?
Avatar billede martinlind Nybegynder
15. september 2001 - 22:27 #3
VAR
  S,S2 : TMemoryStream;

begin
  S := TMemoryStream.Create;
  S2 := TMemoryStream.Create;
  S.LoadFromFile(\'C:\\AutoExec.Bat\');
  S2.CopyFrom(S,0);
  S2.SaveToFile(\'MinKopi.Dat\');
  S2.Free;
  S.Free;
end;
Avatar billede cautoo Nybegynder
15. september 2001 - 22:45 #4
jeg har prøvet at lave et eks. så jeg ka overføre filer mellem to computere men den vil ikk gemme det :-(

COMPUTER1:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyFStream: TFileStream;
begin
  If OpenDialog1.Execute then
  Begin
    NMStrm1.Host := Edit2.Text;
    NMStrm1.FromName := Edit1.Text;
    MyFStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
    try
      NMStrm1.PostIt(MyFStream);
    finally
      MyFStream.Free;
    end;
  end;
end;


COMPUTER 2:
procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
  strm: TStream);
begin
  if savedialog1.execute then
  begin
    dennis.Copyfrom(strm,0);
    dennis.SaveToFile(savedialog1.filename);
  end;
end;
Avatar billede cautoo Nybegynder
15. september 2001 - 22:46 #5
den viser både open og save dialogen men der kommer ikk nogen fil :-(
Avatar billede martinlind Nybegynder
15. september 2001 - 22:49 #6
Jeg mener det er hele streamen du for med copyfrom(strm,0) men check lige hjælpen, og check evt. strm.size og evt. sæt strm.position := 0; inden du laver en copyfrom, jeg formoder at dennis = TMemoryStream. Det virker som om Strm.size er lig 0, får du en fejl ??

/Martin
Avatar billede martinlind Nybegynder
15. september 2001 - 22:51 #7
Prøv evt. lige at tilføje en dennis.Free efter du har lavet en SaveToFile, for at være sikker på den flusher til disk.
Avatar billede cautoo Nybegynder
15. september 2001 - 22:52 #8
ingen fejl den kører der ud af men laver ingen fil
Avatar billede rohr Nybegynder
15. september 2001 - 22:54 #9
Denner du siger du er så god til det så kan du ik bare lave det (og husk vi har tysk for) LOL!!!!



:-)
Avatar billede cautoo Nybegynder
15. september 2001 - 22:56 #10
rohr>> Hvilket tysk?
Avatar billede cautoo Nybegynder
15. september 2001 - 22:57 #11
jeg har prøvet at bruge position og brugt free men intet hjælper
Avatar billede rohr Nybegynder
15. september 2001 - 22:57 #12
Ik noget tror jeg udover det sædvanlige (geheime mission og et eller andet gramma)

Er ik sikker på vi har noget for overhovedet men regner med det
Avatar billede rohr Nybegynder
15. september 2001 - 22:58 #13
Denner svar lige på ICQ ok
Avatar billede cautoo Nybegynder
15. september 2001 - 23:02 #14
rohr>>
HUSK:
ICH BIN
DU BIST
ER, SIE, ES IST
---------------
WIR SIND
IHR SEID
SIE, SIE SIND
Avatar billede cautoo Nybegynder
15. september 2001 - 23:04 #15
martinlind>> Ved du hva det ka være?
Avatar billede martinlind Nybegynder
15. september 2001 - 23:06 #16
Hvad var Strm.Size ???

Den er sikkert lig 0, og derfor ingen fil
Avatar billede cautoo Nybegynder
15. september 2001 - 23:08 #17
904704
Avatar billede cautoo Nybegynder
15. september 2001 - 23:13 #18
jeg har både prøvet at skrive:
dennis.Copyfrom(strm,0);
og
dennis.Copyfrom(strm,strm.size);
hvis det skulle være noget med det
Avatar billede martinlind Nybegynder
15. september 2001 - 23:15 #19
Mærkeligt, prøv evt. at lave din Dennis ( stream ) om til en filestream også nøjes med en CopyFrom og en Free, det burde også virke

jeg har ikke lige nogle ider til hvorfor det andet ikke virker, er du sikker på du kigger efter din fil det rigtige sted på din disk, jeg plejer ikke at havde problemer med stream\'s de plejer sku bare at køre

/Martin
Avatar billede cautoo Nybegynder
15. september 2001 - 23:16 #20
jeg prøvede at lave en:
    showmessage(\'Der er \' + InTToStr(dennis.Size));

efter dennis.copyfrom(bla) og den vil den slet ikk køre
Avatar billede martinlind Nybegynder
15. september 2001 - 23:16 #21
Du skal skrive CopyFrom(Strm,0) for at få hele source stream kopi\'eret ( kig i online hjælpen )
Avatar billede cautoo Nybegynder
15. september 2001 - 23:19 #22
    dennis.Copyfrom(strm,0); virker ikk
Avatar billede martinlind Nybegynder
15. september 2001 - 23:22 #23
Så er det fordi CopyFrom kommer med en fejl, sæt din Delphi op til at breake på delphi excptions så vil den stoppe ved fejlen når du runner, det forklarer også hvorfor du ikke får en fil, delphi jumper ud at din procedure når du for en fejl og kører ikke den efter følgende koden, du kan evt. lave en try except og i din except skrive
fejlen ud.


try
  copyfrom();
  ....
  except
  on E:Exception do
    ShowMEssage(E.Message);
end;
Avatar billede martinlind Nybegynder
15. september 2001 - 23:23 #24
Du skal jo lige huske at Dennis skal være createt

det kan jeg ikke se ud af din kode om den er, noget kunne tyde på at den ikke er det
Avatar billede cautoo Nybegynder
15. september 2001 - 23:25 #25
Access violation at address 0040EE6F in module \'PROJECT1.EXE\'. Read of address FFFFFFFF
Avatar billede cautoo Nybegynder
15. september 2001 - 23:28 #26
dooh create
Avatar billede cautoo Nybegynder
15. september 2001 - 23:31 #27
øøhh foresten nu du er igang ved du så hvordan at jeg ka finde ud af:
Først hvilke mapper der ligger i en bedstemt mappe eller et drev og så bagefter filer (De ska ligges i hver deres memofelt

hvis du ve det gider du så ik svare her: http://www.eksperten.dk/spm/109193 ??????
Avatar billede martinlind Nybegynder
16. september 2001 - 17:32 #28
Det spm er da lukket !
Avatar billede martinlind Nybegynder
16. september 2001 - 17:44 #29
Du kan kigge her i løbet af i morgen : www.e-lind.dk

/Martin
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