Ĺadny brzuch
Witam!
Mam kilka pytań odnośnie różnych formatów plików.
1) Czy każdy format pliku zawiera w sobie informacje o nim samym :?
Nie wiem jak to napisać, chodzi mi o takie coś jak tag'i w mp3 ;)
Powiedzmy dla jpg, lub bmp ;)
2) Jak ustawić, w pliku, miejsce od którego będe odczywał dane :?
POgubiłem się z tym. Dla przykładu: Seek(F,FileSize(F)), ustawia na końcu, a jak zrobic by ustwail na poczatku, albo na srodku :?
Nie odsylajcie mnie na google, jesli wiecie i sie Wam chce, to napiszcie, bede wdzieczny. Dzieki ;)
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Jeżeli chodzi o pierwsze pytanie to raczej jest to niemożliwe. Pliki takie jak bmp i jpg mają specjalny format i w zasadzie nie możesz go zmieniać. Jeżeli jednak to zrobisz to i tak infromacje które tam zostawisz będą możliwe go odczytania tylko z twojego programu (inne programy mogą zgłaszać bład formatu pliku). Najlepiej umieścić dodatkowe dane na końcu pliku, gdzyż na początku w tych plikach znajdują sie odpowiednie nagłówki.
Jeżeli chodzi o drugie pytanie:
Seek(F, miejsce_w_bajatach_od_początku_pliku)
czyli
na początek pliku: Seek(F, 0);
na środek pliku: Seek(F, FileSize(F) div 2);
itp.
1.)Niektore tak, oblookaj hexedytorem pliki zip. Wszystkie zaczynaja sie od PK ... I w ten sposob jak sie zmieni rozszerzenie, to i tak np. Total Commander traktuje je jak zwykle zipy - wczytuje strukture.
2.) masz tak Seek(F,0) - na początku (albo Seek(F,1) - nie pamietam :P), seek(F,FileSize(f) div 2) - w polowie
//gg:2574115
//e-mailmigajek@yahoo.com
//Zapraszam na moją stronkę:http://www.migsoft.prv.pl
1. Zależy od formatu pliku.
2. Na początku pliku:Seek(f,0), a na środku to będzie coś ok. Seek(f,FileSize(f) div 2) :DNo chyba, że chodziło Ci o coś całkiem innego...
--------------------
-=[ Delphi rUlzZz ]=-
Nie chce nic zmieniać w tych plikach. Ciekawi mnie czy kazdy format pliku zawiera w sobie naglowek w ktorym sa informacje o tym pliku. Tak jak tagi w mp3 ;) Np. (bitmapa) ile kolorow, rozmiar itd. Jest cos takiego :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Te, które tego wymagają, mają takie informacje. Większość plików zawiera nagłowek, np. bmp, jpg, gif, exe, 3ds, zip, rar, etc (oprócz oczywiście plików tekstowych - txt, html, php, pas, c, cpp, h ...).
--------------------
-=[ Delphi rUlzZz ]=-
Znacie jakies stronki z podanymi rekordami naglowkow tych plikow :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Gdzieś tu ostatnio na forum było podawane:http://www.myfileformats.com/
--------------------
-=[ Delphi rUlzZz ]=-
Felerne nagłówki, mam wszystko za wyjątkiem ich [:/]
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
No masz specyfikacje na myfileformats . A jak cos to pootwieraj rozne pliki na swoim kompie hexedytorem i juz :P
//gg:2574115
//e-mailmigajek@yahoo.com
//Zapraszam na moją stronkę:http://www.migsoft.prv.pl
Mam taki oto kod:
Var Buf : Array[1..54] Of Char; F : File; Begin Try AssignFile(F,'C:Test.bmp'); Reset(F, 1); Seek(F, 1); BlockRead(F, Buf, SizeOf(Buf)); CloseFile(F); Except Raise End; Label1.Caption := Copy(Buf, 2, 6); End;
Powinien odczytywać wielkość bitmapy, ale tego nie robi, bo ja coś źle robie ;) Możecie mi powiedzieć co jest źle :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Zapomniałem dodać linka:
http://www.fastgraph...der_format.html
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
//--
var
rozmiar: longint;
plik: file;
begin
assignfile(plik, 'plik.bmp');
reset(plik, 1);
seek(plik, 2);
blockread(plik, rozmiar, sizeof(rozmiar));
Caption:='Bajtów: '+inttostr(rozmiar);
end;
//--
Nie możesz wyciągać danych jako znaki (char), każda zmienna ma swój format danych, czy to ciąg znaków czy liczb.
pozdrawiam
kind
gg: 1482111
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam kilka pytań odnośnie różnych formatów plików.
1) Czy każdy format pliku zawiera w sobie informacje o nim samym :?
Nie wiem jak to napisać, chodzi mi o takie coś jak tag'i w mp3 ;)
Powiedzmy dla jpg, lub bmp ;)
2) Jak ustawić, w pliku, miejsce od którego będe odczywał dane :?
POgubiłem się z tym. Dla przykładu: Seek(F,FileSize(F)), ustawia na końcu, a jak zrobic by ustwail na poczatku, albo na srodku :?
Nie odsylajcie mnie na google, jesli wiecie i sie Wam chce, to napiszcie, bede wdzieczny. Dzieki ;)
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Jeżeli chodzi o pierwsze pytanie to raczej jest to niemożliwe. Pliki takie jak bmp i jpg mają specjalny format i w zasadzie nie możesz go zmieniać. Jeżeli jednak to zrobisz to i tak infromacje które tam zostawisz będą możliwe go odczytania tylko z twojego programu (inne programy mogą zgłaszać bład formatu pliku). Najlepiej umieścić dodatkowe dane na końcu pliku, gdzyż na początku w tych plikach znajdują sie odpowiednie nagłówki.
Jeżeli chodzi o drugie pytanie:
Seek(F, miejsce_w_bajatach_od_początku_pliku)
czyli
na początek pliku: Seek(F, 0);
na środek pliku: Seek(F, FileSize(F) div 2);
itp.
1.)Niektore tak, oblookaj hexedytorem pliki zip. Wszystkie zaczynaja sie od PK ... I w ten sposob jak sie zmieni rozszerzenie, to i tak np. Total Commander traktuje je jak zwykle zipy - wczytuje strukture.
2.) masz tak Seek(F,0) - na początku (albo Seek(F,1) - nie pamietam :P), seek(F,FileSize(f) div 2) - w polowie
//gg:2574115
//e-mailmigajek@yahoo.com
//Zapraszam na moją stronkę:http://www.migsoft.prv.pl
1. Zależy od formatu pliku.
2. Na początku pliku:Seek(f,0), a na środku to będzie coś ok. Seek(f,FileSize(f) div 2) :DNo chyba, że chodziło Ci o coś całkiem innego...
--------------------
-=[ Delphi rUlzZz ]=-
Nie chce nic zmieniać w tych plikach. Ciekawi mnie czy kazdy format pliku zawiera w sobie naglowek w ktorym sa informacje o tym pliku. Tak jak tagi w mp3 ;) Np. (bitmapa) ile kolorow, rozmiar itd. Jest cos takiego :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Te, które tego wymagają, mają takie informacje. Większość plików zawiera nagłowek, np. bmp, jpg, gif, exe, 3ds, zip, rar, etc (oprócz oczywiście plików tekstowych - txt, html, php, pas, c, cpp, h ...).
--------------------
-=[ Delphi rUlzZz ]=-
Znacie jakies stronki z podanymi rekordami naglowkow tych plikow :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Gdzieś tu ostatnio na forum było podawane:http://www.myfileformats.com/
--------------------
-=[ Delphi rUlzZz ]=-
Felerne nagłówki, mam wszystko za wyjątkiem ich [:/]
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
No masz specyfikacje na myfileformats . A jak cos to pootwieraj rozne pliki na swoim kompie hexedytorem i juz :P
//gg:2574115
//e-mailmigajek@yahoo.com
//Zapraszam na moją stronkę:http://www.migsoft.prv.pl
Mam taki oto kod:
Var Buf : Array[1..54] Of Char; F : File; Begin Try AssignFile(F,'C:Test.bmp'); Reset(F, 1); Seek(F, 1); BlockRead(F, Buf, SizeOf(Buf)); CloseFile(F); Except Raise End; Label1.Caption := Copy(Buf, 2, 6); End;
Powinien odczytywać wielkość bitmapy, ale tego nie robi, bo ja coś źle robie ;) Możecie mi powiedzieć co jest źle :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Zapomniałem dodać linka:
http://www.fastgraph...der_format.html
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
//--
var
rozmiar: longint;
plik: file;
begin
assignfile(plik, 'plik.bmp');
reset(plik, 1);
seek(plik, 2);
blockread(plik, rozmiar, sizeof(rozmiar));
Caption:='Bajtów: '+inttostr(rozmiar);
end;
//--
Nie możesz wyciągać danych jako znaki (char), każda zmienna ma swój format danych, czy to ciąg znaków czy liczb.
pozdrawiam
kind
gg: 1482111