Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Fehler bei CopyFrom

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
16.03.2007, 13:59 Uhr
~projekter
Gast


Ich habe zwei FileStreams und möchte den Inhalt des einen in den des anderen kopieren.


C++:
Stream1->Seek(0, soFromEnd);
Stream1->CopyFrom(Stream2, 0);
Stream1->Seek(0, soFromEnd);



Compilieren lässt sich das alles auch wunderbar, aber dann meldet er mir bei "CopyFrom(xxx)" immer einen Stream-Lesefehler, obwohl die new-Zuweisung wundervoll funktioniert hat.

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.03.2007, 14:05 Uhr
projekter



Ist nicht so dringend...
Dieser Post wurde am 16.03.2007 um 14:06 Uhr von projekter editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.03.2007, 22:09 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Bist du sicher, dass Stream2 korrekt initialisiert und alloziert ist?

Sonst poste mal den entsprechenden Code ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.03.2007, 19:38 Uhr
projekter



Ja, beide Streams wurden korrekt initialisiert...ich habe auch Schreibrechte. Ich habe den Code zurzeit nicht zur Verfügung, aber hier habe ich ihn her (und dann halt in C++ umgewandelt). In Pascal geht das alles auch!

www.dsdt.info/tipps/?id=133
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.03.2007, 19:44 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Ohne mich groß da durch gewühlt zu haben ... Warum willst du den Code denn umschreiben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.03.2007, 11:50 Uhr
projekter



Falls du meinst, wieso von Pascal nach C++: Ich schreibe dieses Programm, was die Routine benötigt, in einem Schulkurs, aber da gibt es leider kein Delphi...so fortschrittlich sind die da noch nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.03.2007, 13:05 Uhr
projekter



Gibt's keine Möglichkeit???

Sonst müsste ich das in eine Delphi-DLL schreiben und dann darauf zugreifen ...aber muss man das so umständlich machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.03.2007, 13:18 Uhr
projekter



Hier der ganze Code:



C++:
TFileStream *Full = new TFileStream(SaveDialog1->FileName, fmOpenReadWrite || fmShareDenyNone);
      if(FileExists(SaveDialog1->FileName) == true)
      {
         Full->Size = 0;
      }
      int SoF;
      char SW[10];
      for(int i = 1; i <= ComboBox1->Items->Count; i++){
          try{
             SoF = Full->Size;
             if(DirectoryExists("C:\\Temp") == false)
             {
                CreateDir("C:\\Temp");
             }
             MainForm->Daten[i]->Lines->Add(MainForm->Titel[i]);
             MainForm->Daten[i]->Lines->SaveToFile("C:\\Temp\\dat.rtf");
             TFileStream *OF = new TFileStream("C:\\Temp\\dat.rtf", fmOpenReadWrite ||
                                               fmShareDenyNone);
             try{
                 Full->Seek(0, soFromEnd);
                 OF->Position = 0;
                 Full->CopyFrom(OF, 0);
                 Full->Seek(0, soFromEnd);
                 OF->Free();
             }catch(...){
                 OF->Free();
             }
             MainForm->Daten[i]->Lines->Delete(0);
             DeleteFile("C:\\Temp\\dat.rtf");
             itoa(SoF, SW, 10);
             Full->Seek(0, soFromEnd);
             Full->WriteBuffer(SW, sizeof(SW));
             Progress->StepBy(1);
             Application->ProcessMessages();
          }catch(...){
          }
      }


Dieser Post wurde am 23.03.2007 um 13:18 Uhr von projekter editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.03.2007, 15:43 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Ähm, ich verstehe das Problem nicht?
Du programmierst mit der VCL in C++, also hast du doch einen C++-Builder zur Verfügung? Der kann aber nativ Delphicodes übersetzen (die VCL selbst ist ja in DelphiLanguage geschrieben) ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
24.03.2007, 13:40 Uhr
projekter



Es geht halt nicht, obwohl es - wie du sagst - eigentlich gehen müsste.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: