![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема открытия файла [D7, WinXP]
Гость... © (2005-06-13 11:33:00)Hello ALL!
Такая вот проблема возникла, никак не могу решить:
есть файл, например 1.mid. Открываю его в своей проге таким образом:
procedure TForm1.XPButton1Click(Sender: TObject);
var
Buffer: PChar;
Stream: TFileStream;
Size: LongInt;
begin
Stream := TFileStream.Create('1.mid', fmOpenRead);
try
Size := Stream.Size;
GetMem(Buffer, Size);
try
Stream.Read(Buffer[0], Size);
Memo1.Lines.Text := Buffer;
finally
FreeMem(Buffer);
end;
finally
Stream.Free;
end;
end;
но в TMemo оказывается только первые 4 символа заголовка midi файла "MThd". Buffer пробовал брать string - все равно ничего не получается. Также и с другими файлами, но не со всеми. Помогите. Мне надо, чтобы я мог искать в файлах. Не обязательно даже, чтобы юзер мог видеть.
Anatoly Podgoretsky (2005-06-13 12:06:00) [21]Гость... (13.06.05 12:03) [8]
Еще раз, Read это функция!!!!!!!!
ferr (2005-06-13 12:06:00) [22]Можно. А что надо то?
Гость... (2005-06-13 12:03:00) [23]а как тогда быть, если мне надо весь текст из файла занести в string. Может можно как-то заменять нулевой символ на "пробел"?
ferr (2005-06-13 12:01:00) [24]Тебе два раза ясно ответили на 4-ой позиции нулевой символ, означающий для текста конец строки.
Гость... (2005-06-13 11:52:00) [25]может я не правильно выражаюсь, но мне надо открыть файл "как есть", т.е. в бинарном режиме
Гость... (2005-06-13 11:51:00) [26]и так я тоже пробовал:
procedure TForm1.Button2Click(Sender: TObject);
var
Buffer: string;
Stream: TFileStream;
begin
Stream := TFileStream.Create('unit1.pas', fmOpenRead);
try
SetLength(buffer, Stream.Size);
Stream.Read(Buffer[1], Stream.Size);
Memo1.Lines.Text := Buffer;
finally
Stream.Free;
end;
end;
Anatoly Podgoretsky (2005-06-13 11:50:00) [27]Гость... (13.06.05 11:48) [3]
Тогда почему используешь PChar, а речь ведешь про string
Гость... (2005-06-13 11:48:00) [28]так мне надо просто скопировать участок из этого файла в string
ferr (2005-06-13 11:40:00) [29]там 0 символ наверное. Мемо тут не поможет
Anatoly Podgoretsky (2005-06-13 11:40:00) [30]Файл же не текстовый. Посмотри, что в Buffer[4]
Кроме того Read это функция, а не процедура!