Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.03.2012, 00:03
deniks deniks вне форума
Прохожий
 
Регистрация: 08.03.2012
Сообщения: 25
Репутация: 10
Вопрос Работа с wav

Здравствуйте уважаемые знатоки. Делаю программу для диплома ( в универе паскаль учили да и все) и столкнулся с трудностями. Есть рабочая программа на паскале, ее нужно переделать в делфи.

Суть программы заключается в считывании данных из *.wav и работа с ними. Но на этапе считывания wav столкнулся с проблемами, делфи говорит о выходе за пределы.

Часть программы на паскале, где считывается .wav

Код:
(var datafile : file of byte )

 Assign(DataFile,ss[kd]+mpp+'.wav');
   Reset(DataFile);
   seek(DataFile, 50);
 AAs[0]:=0;
       for i:=1 to k do
 A[i]:=0;

 for jj:=1 to jjk do
begin
   for i := 1 to 4096 do
      begin
      Read(DataFile, Xx);
X^[i]:=xx/1;
end;

моя попытка в делфи:

Код:
AssignFile(DataFile,ss[kd]+mpp+'.wav');
Reset(DataFile, 1);
AAs[0]:=0;
for i:=1 to k do
A[i]:=0;
seek(DataFile, 50);


   for i:=1 to 4096 do
         begin
         blockread(Datafile,buf,1);
         X^[i]:=buf;
end;

Если кто может, огромная просьба помочь.

Выскакивает ошибка на blockread(Datafile,buf,1); Read beyond end of file. Вроде бы как выходит за пределы. исправить не получается...

Последний раз редактировалось lmikle, 14.03.2012 в 02:04.
Ответить с цитированием
  #2  
Старый 14.03.2012, 00:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для начала заключи приведённый код в тег , затем приведи переменные которые используешь. При указанной переменной DataFile, нужно писать Reset(DataFile).
Если используется переменная DataFile того типа как сейчас приведена, то нужно испольбзовать Read.
P.S. Как читал в старом добром Паскале, также читаешь и сейчас.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 14.03.2012 в 00:43.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
deniks (14.03.2012)
  #3  
Старый 14.03.2012, 01:40
deniks deniks вне форума
Прохожий
 
Регистрация: 08.03.2012
Сообщения: 25
Репутация: 10
По умолчанию

Код:
unit pribor56;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    private
    { Private declarations }
  public
    { Public declarations }
  end;

type
            mascp=array[1..4096] of single ;
              mask=array[0..4096] of single ;
              mascpptr=^mascp;

              maskd=array [0..10] of string;


var
  Form1: TForm1;

var xx: byte;
datafile : file of byte;
mpp:string;
kd:longint;
jj:integer;
   sabb, sgarm, ss: maskd;

          const jjk=2;{L=5;}n=12;pkr=100;fmax=11025/2;
          var  dt,a,f,xk:mask;
      x,y:mascpptr;
     
        i,j,k,L: integer;
          

implementation
{$R *.dfm}

begin

mpp:='1';
ss[kd]:='1w';

Assign(DataFile,ss[kd]+mpp+'.wav');
Reset(DataFile);
seek(DataFile, 50);

for i:=1 to k do
A[i]:=0;
for jj:=1 to jjk do
begin
for i := 1 to 4096 do
begin
Read(DataFile, Xx);
X^[i]:=xx/1;
end;end; end.

lmikle: Дальше буду карать!!! дальше такого не будет, спс

Последний раз редактировалось deniks, 14.03.2012 в 09:19.
Ответить с цитированием
  #4  
Старый 14.03.2012, 01:41
deniks deniks вне форума
Прохожий
 
Регистрация: 08.03.2012
Сообщения: 25
Репутация: 10
По умолчанию

на строке Read(DataFile, Xx); как бы читаем из .wav по байту

выбивает ошибку, поэтому думал по другому считать, к чему пришел в 1м посте, но ошибка из 1го места переместилась в другое.

Последний раз редактировалось deniks, 14.03.2012 в 01:45.
Ответить с цитированием
  #5  
Старый 14.03.2012, 01:45
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вы собираетесь пользоваться тегом [code]? Пока не исправите ответа не ждите.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 14.03.2012, 09:18
deniks deniks вне форума
Прохожий
 
Регистрация: 08.03.2012
Сообщения: 25
Репутация: 10
По умолчанию

сори.. не знал ваших правил оформления. модер уже подправил
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter