ďťż

Ł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
  •