Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

otvaranje fajla u Borland builder-u

[es] :: C/C++ programiranje :: otvaranje fajla u Borland builder-u

[ Pregleda: 2087 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon otvaranje fajla u Borland builder-u04.05.2005. u 20:44 - pre 231 meseci
Zna li ko kako da kad napravim aplikaciju u Borlandu, i nakon sto podesim da mi se *.txt fajlovi otvaraju sa mojim programom, kad uradim dvoklik na neki txt fajl, da mi se on ucita u moj program.
sada mi se samo otvori program, ali se ne ucita sadrzaj fajla...
sta bih trebao uraditi?kakav mi je kod potreban?
i kako se rijesava pitanje sacuvavanja promjena u aplikaciji?
(npr promjenim boju aplikacije, ili font, da mi aplikacija kad je sljedeci put otvorim
ima takav izgled?)
rijesava li se to nekim .reg ili .ini fajlom, ili je dovoljno aktivirati nesto pri kompajliranju, po cemu ce aplikacija znati da treba da pamti promjene...
ne trazim da mi se stavi sve na gotovo, ali samo barem neki nacrt ,sa iole konkretnim uputima, pa cu sam da istrazujem dalje...
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: otvaranje fajla u Borland builder-u05.05.2005. u 09:28 - pre 231 meseci
Nema tu puno mudrosti, postoji samo nekoliko upisa u Registry koje
treba postaviti, a nakon toga treba isprogramirati ponašanje.

Dakle, recimo da želimo da prijavimo *.trt ekstenziju, i nakon toga
da dupli klik na neku takvu datoteku učitava njen sadrzaj u TMemo.

Code:

// netestirano!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   TRegistry *pReg = NULL;

   try
   {
      try
      {
         pReg = new TRegistry;

         pReg->RootKey = HKEY_CLASSES_ROOT;

         pReg->OpenKey( ".trt", true );
         pReg->WriteString( "", "Probna aplikacija" );

         pReg->OpenKey( "\\Probna aplikacija\\shell\\open\\command", true );
         pReg->WriteString( "", ParamStr(0) + " %1" );

         // ovo bi valjda trebalo da pridruzi i ikonu (nakon restarta)
         pReg->OpenKey( "\\Probna aplikacija\\DefaultIcon", true );
         pReg->WriteString( "", ParamStr(0) + ",0" );

         ShowMessage( "Pridruživanje ekstenzije je uspelo!" );
      }
      catch ( const Exception &e )
      {
         ShowMessage( "Pridruživanje ekstenzije nije uspelo!" );
      }
   }
   __finally
   {
      if ( pReg )
         delete pReg;
   }
}


...dalje, na sličan način se i otarašavamo tog pridruženja:

Code:

// netestirano!
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  TRegistry* pReg = NULL;

  try
  {
     try
     {
        pReg = new TRegistry;

        pReg->RootKey = HKEY_CLASSES_ROOT;
        pReg->DeleteKey( ".trt" );
        pReg->DeleteKey( "Probna aplikacija" );

        ShowMessage( "Pridruživanje ekstenzije je raskinuto!" );
     }
     catch ( const Exception &e )
     {
        ShowMessage( "Raskidanje ekstenzije nije uspelo!" );
     }
  }
  __finally
  {
     if ( pReg )
        delete pReg;
  }
}



... konačno, kod koji učitava sadržaj (može u konstruktor):

Code:

// netestirano!
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   if ( ParamCount() == 1 )
      Memo1->Lines->LoadFromFile( ParamStr(1) );
}


... sada napravi neku (tekstualnu) datoteku i promeni joj ekstenziju u *.trt.

Nisam siguran, ako ti kompajler ne prepozna TRegstry, moraćeš da uključiš i

Code:

#include <Registry.hpp>


... ili nešto slično, ne mogu da se setim.

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: otvaranje fajla u Borland builder-u05.05.2005. u 09:40 - pre 231 meseci
Što se tiče pamćenja izmena, za to može da posluži i Registry i INI.

Ako koristiš INI, pogledaj TIniFile klasu i njene metode

WriteString/ReadString
WriteInteger/ReadInteger
WriteColor/ReadColor

itd...

Kada su izmene snimljene u konstruktoru možeš da ih učitavaš i pridružuješ
kontrolama...

 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: otvaranje fajla u Borland builder-u05.05.2005. u 22:49 - pre 231 meseci
pa dobro...ja nisam htio napraviti nikakvu novu ekstenziju, nego sam htio najobicniji i najklasicniji .txt da otvaram, i ja sam isto uradio to pomocu sljedeceg koda:

TStringList* strings = new TStringList();

if (ParamCount() > 0)
{
strings->LoadFromFile(ParamStr(1));
}


Memo1->Lines = strings;


delete strings;

bojao sam se da to i nije najbolje rijesenje...
drago mi je da smo to otprilike na isti nacin uradili...
hvala puno, x files!!!
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: otvaranje fajla u Borland builder-u06.05.2005. u 05:18 - pre 231 meseci
Code:

TStringList* strings = new TStringList(); 

if (ParamCount() > 0) 
{
   strings->LoadFromFile(ParamStr(1));
}

Memo1->Lines = strings;


Može kraće:

Code:

if ( ParamCount() > 0 ) 
{
   Memo1->Lines->LoadFromFile( ParamStr(1) );
}


TMemo u sebi sadrži TStrings tako da je redundantno imati dve kopije.

P.S.
Ovo nije dobro (iako verovatno trenutno radi zbog toga što je C++ najbolji :)!
Code:

Memo1->Lines = strings;


Pogledaj Assign() ili LoadStrings()

P.P.S. Šta će se desiti sa tvojim kodom ako klikneš na neku binarnu datoteku ?
Kako se ponašaju drugi programi u takvom slučaju?
 
Odgovor na temu

[es] :: C/C++ programiranje :: otvaranje fajla u Borland builder-u

[ Pregleda: 2087 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.