AnsiString Int_To_StrBin(int A)
{
AnsiString S = "", S1 = "";
int I = 1;
if (A == 0) S = "0";
while(A > 0)
{
S = S + char((A % 2) + 48);//xz
A = A/2;
if ((I % 4) == 0)
S = S + " ";
I++;
}
if ((S.Length() % 5) == 1) S = S + "000 ";
if ((S.Length() % 5) == 2) S = S + "00 ";
if ((S.Length() % 5) == 3) S = S + "0 ";
for (int I = 1; I < (S.Length() + 1); I++)
{
S1 = S1 + S[S.Length() + 1 - I];
}
return S1;
}
Здравствуйте, Serega_mexanik, Вы писали:
S_>т.к. тупой комп не понимает ничего, кроме 0 и 1
Комп не настолько тупой как вы пишете. Он понимает изображения, звуки, а ещё он может принимать радиоволны и электрические сигналы и черпать из них всю безграничность интернета.
S_>то можно сделать из любого файла, любого формата...
И какой формат при этом получится?
S_>...и что в Винде что на Линухе "00000010" = 2, те.е файл один и тот же...
Взять для примера файл JPG, что в Винде, что на Линухе это один и тот же файл, показываемый вьюверами как картинку.
Другой пример — музыка в mp3 — хоть в Виндовсе, хоть в Линуксе, да хоть в mp3 плеере, это файл содержащий музыку.
Попытайтесь как можно подробнее и точнее описать проблему, которая стоит перед Вами, иначе рискуете остаться без ответа.
Здравствуйте, Hruks, Вы писали:
H>Попытайтесь как можно подробнее и точнее описать проблему, которая стоит перед Вами, иначе рискуете остаться без ответа.
А топик стартер пытается перевести все байты в файле в их бинарное представление.
Например 05h в последовательность 00h 00h 00h 00h 00h 01h 00h 01h. Вот только нафига это надо, если уже есть БИТЫ?
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[2]: перевод файла в "0" и "1"
От:
Аноним
Дата:
05.12.08 16:07
Оценка:
Здравствуйте, Hruks H>Попытайтесь как можно подробнее и точнее описать проблему, которая стоит перед Вами, иначе рискуете остаться без ответа.
необходимо открыть видео файл (*.avi, *.mpg, *.wmv...) в виде двоичного файла и загнать сие в Мемо....
но как бы продолжение программы — открыть любой файл (avi, mp3, doc, exe.....)
т.е. я с помощью OpenDialog открываю? например файл.avi, показываю красивый ProgressBar и окошко мемо забиваеться 0 и 1...
Здравствуйте, Аноним, Вы писали:
А>т.е. я с помощью OpenDialog открываю? например файл.avi, показываю красивый ProgressBar и окошко мемо забиваеться 0 и 1...
Ясно... Писал на коленке и не проверял!, но смысл должен быть ясен.
function Binary(L:Byte):string;
var I:Byte;
Buf:byte;
begin
Result:='';
for I:=7 downto 0 do
begin
Buf:=1 shl i;
if (L and Buf)<>0 then Result:=Result+'1'else Result:=Result+'0';
end;
end;
procedure FileToBinStrings(FileName:string; L:TStrings);
var F:TFileStream;
Buffer:array[0..16] of byte;
i,Readed:integer;
F:TFileStream;
S:string;
begin
L.Clear;
F:=TFileStream.Create(FileName,rmOpenRead or fmShareDenyNone);
try
repeat
Readed:=F.Read(Buffer,SizeOf(Buffer));
S:='';
if Readed>0 then
for i:=0 to Readed do
S:=S+Binary(Buffer[i])+' ';
if S<>''then
L.Add(Trim(S));
until (Readed=0);
finally F.Free; end;
end;
procedure Form1.Button1Click(Sender:TObject);
begin
FileToBinStrings('MyFile.avi', Memo1.Lines);
end;
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[4]: перевод файла в "0" и "1"
От:
Аноним
Дата:
05.12.08 18:42
Оценка:
DM>Ясно... Писал на коленке и не проверял!, но смысл должен быть ясен.
DM>
DM>function Binary(L:Byte):string;
DM>var I:Byte;
DM> Buf:byte;
DM>begin
DM> Result:='';
DM> for I:=7 downto 0 do
DM> begin
DM> Buf:=1 shl i;
DM> if (L and Buf)<>0 then Result:=Result+'1'
DM> else Result:=Result+'0';
DM> end;
DM>end;
DM>procedure FileToBinStrings(FileName:string; L:TStrings);
DM>var F:TFileStream;
DM> Buffer:array[0..16] of byte;
DM> i,Readed:integer;
DM> F:TFileStream;
DM> S:string;
DM>begin
DM> L.Clear;
DM> F:=TFileStream.Create(FileName,rmOpenRead or fmShareDenyNone);
DM> try
DM> repeat
DM> Readed:=F.Read(Buffer,SizeOf(Buffer));
DM> S:='';
DM> if Readed>0 then
DM> for i:=0 to Readed do
DM> S:=S+Binary(Buffer[i])+' ';
DM> if S<>''then
DM> L.Add(Trim(S));
DM> until (Readed=0);
DM> finally F.Free; end;
DM>end;
DM>procedure Form1.Button1Click(Sender:TObject);
DM>begin
DM> FileToBinStrings('MyFile.avi', Memo1.Lines);
DM>end;
DM>
я в паскале не силен.... но попробую...
какая разница между функцией и процедурой? Сори, посмотрю в сети