Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема открытия файла [D7, WinXP]


Страницы:   1 2

Гость... ©   (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:38:00) [1]

Задавать вопросы твоя задача, как задашь так и получишь.


Гость...   (2005-06-13 12:35:00) [2]

Спасибо всем. Вроде разобрался.

>Anatoly Podgoretsky ©   (13.06.05 12:33) [28]
да просто я неправильно выразился в начале. ;)


Anatoly Podgoretsky   (2005-06-13 12:33:00) [3]

Ндать, жалко правила форума не позволяют персонально прокатываться по интеллекту.


ferr   (2005-06-13 12:32:00) [4]

[23]:SizeOf(Buffer)=SizeOf(Pointer)

> чет я ниче не пойму. А как мне ВЕСЬ "текст" из файла в
> string переденуть?

[5].


Гость...   (2005-06-13 12:28:00) [5]

чет я ниче не пойму. А как мне ВЕСЬ "текст" из файла в string переденуть?


Anatoly Podgoretsky   (2005-06-13 12:27:00) [6]

Гость...   (13.06.05 12:23) [23]
Он такой и до Stream.Read


ferr   (2005-06-13 12:23:00) [7]


> Т.е. при Memo.text:=buffer в memo строка обрезается?

Да, она преобразуется к родному PChar, а он ноликом оканчивается.


Гость...   (2005-06-13 12:23:00) [8]

хорошо, тогда почему после Stream.Read(Buffer[1], Stream.Size) SizeOf(Buffer) = 4?


Anatoly Podgoretsky   (2005-06-13 12:22:00) [9]

Напоминаю, это функция, а не процедура.


ferr   (2005-06-13 12:21:00) [10]

Строки тут вообще не нужны. ИМХО.


Гость...   (2005-06-13 12:20:00) [11]

>Anatoly Podgoretsky ©   (13.06.05 12:18) [19]
я так тоже делал. Т.е. при Memo.text:=buffer в memo строка обрезается?


Anatoly Podgoretsky   (2005-06-13 12:18:00) [12]

Гость...   (13.06.05 12:13) [16]
Stream.Read(Buffer[1], Stream.Size);


Гость...   (2005-06-13 12:14:00) [13]

ну это я просто, чтоб видеть, че я достаю. Забудьте про memo. Оно мне не надо.


ferr   (2005-06-13 12:14:00) [14]

А причём здесь Memo?


Гость...   (2005-06-13 12:13:00) [15]

>Anatoly Podgoretsky ©   (13.06.05 12:12) [14]
ну так а как мне достать из файла string??????


Anatoly Podgoretsky   (2005-06-13 12:12:00) [16]

Гость...   (13.06.05 12:10) [13]
Начинает утомлять.


Anatoly Podgoretsky   (2005-06-13 12:12:00) [17]

Гость...   (13.06.05 12:08) [12]
POS. Copy


Гость...   (2005-06-13 12:10:00) [18]

//Anatoly Podgoretsky ©   (13.06.05 12:06) [10]
а возвращает она integer. и че мне с ней делать?


Гость...   (2005-06-13 12:08:00) [19]

Мне надо в файле найти определенную строку ~4-5 символов, затем копировать содержимое этого файла с начала этой строки и кончая +10 символов в новый файл


Плохиш   (2005-06-13 12:07:00) [20]

>Гость...   (13.06.05 12:03) [8]

Твой файл не является текстовым, как тебе уже много раз сказали/намекнули.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо