Citat:
interesuje me kako uraditi da se npr. pri pokretanju aplikacije ucita neki fajl tj. vise
nekih fajlova u memoriju i da tu stoje jer ce ih nekada neki dio nase aplikacije
koristiti...
npr. neki .ini ili .txt fajlovi a sve radi brzeg, kasnije, rada same aplikacije...
Velika vecina VCL standardnih komponenti ima metodu LoadFromStream(), sto dalje
znaci da mozes reci npr:
--- H ---
Code:
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TMemo *Memo1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
TMemoryStream *MS;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1();
};
--- CPP ---
Code:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
MS = new TMemoryStream;
MS->LoadFromFile("C:\\dogshow.txt");
}
__fastcall TForm1::~TForm1()
{
delete MS;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->LoadFromStream( MS );
}
Dakle, nisam direktno sa diska uzitao fajl DOGSHOW.TXT i stavio ga u Memo1,
nego sam ga prvo stavio u TMemoryStream objekat.
Kasnije, kada mi je zatrebao taj tekst, ucitao sam ga iz RAM-a, tj MS-a.
Postoji puno vrsta STREAM-ova: Memory, File, Resource stream...
Citat:
jer ponekad vise vrijedi vrijeme odziva tog nekog dijela aplikacije nego tih nekoliko
KB memorije koliko zauzima neki .ini ili .txt fajl....
Razmisli o svom dizajnu! Resursi nisu beskonacni!
Citat:
ovo me sve interesuje i za .wav fajl...znaci kako i njega ucitati u memoriju (ali ne iskoristiti pri ucitavanju, nego samo ucitati...) , pa nek stoji dok ne zatreba....
E ovo bi mogla biti druga prica. Najbolje je taj zvuk staviti u tzv RESURSNI FAJL,
i kasnije ga iz njega pozvati, a to ti je isto iz RAM-a.
Napravi rucno jednu *.RC datoteku (Unit1.RC), i neka izgleda ovako:
Code:
#define IDW_ZVUK 1000
#ifdef RC_INVOKED
IDW_ZVUK WAVE "zvuk.wav"
#endif
Naravno, stavi je zajedno sa Unit1.cpp i Unit1.h (u isti folder). Takodje u isti folder
stavi i svoj zvuk.wav fajl (zbog kompajliranja). Kasnije pri izvrsavanju taj WAV ti
nece trebati...
Dodaj (Add to project...) taj Unit1.RC.
Kasnije, iz programa, zvuk reprodukujes ovako:
Code:
PlaySound( MAKEINTRESOURCE( IDW_ZVUK ), HInstance, SND_RESOURCE | SND_ASYNC );
Citat:
i sad samo malo teorijske rasprave, jer mi nesto nije bas najjasnije:
ako nasa aplikacije koristi neki c:\WINDOWS\ini_fajl.ini
Pogledaj gotovu VCL klasu: TMemIniFile. Vec su je ljudi smislili.
Citat:
mozda isto preko putanje, pa ce kompjuter "prepoznati" da je fajl ucitan vec??
pa?
Takav koncept ne postoji niti ce kada postojati ;)