
13.11.2011, 13:35
|
Прохожий
|
|
Регистрация: 03.11.2011
Сообщения: 18
Репутация: 10
|
|
Вот что пишет при нажатии кнопки 1:

Вот весь код если что:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TWaveHeader = record
idRiff: array[0..3] of char;
RiffLen: longint;
idWave: array[0..3] of char;
idFmt: array[0..3] of char;
InfoLen: longint;
WaveType: smallint;
Ch: smallint;
Freq: longint;
BytesPerSec: longint;
align: smallint;
Bits: smallint;
idData: array[0..3] of char;
DataLen: longint;
Data: array of SmallInt;
end;
TWaveHeader1 = record
idRiff1: array[0..3] of char;
RiffLen1: longint;
idWave1: array[0..3] of char;
idFmt1: array[0..3] of char;
InfoLen1: longint;
WaveType1: smallint;
Ch1: smallint;
Freq1: longint;
BytesPerSec1: longint;
align1: smallint;
Bits1: smallint;
idData1: array[0..3] of char;
DataLen1: longint;
Data1: array of SmallInt;
end;
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Chart1: TChart;
Series1: TLineSeries;
Button4: TButton;
Edit1: TEdit;
Button5: TButton;
Edit2: TEdit;
Button6: TButton;
Memo2: TMemo;
OpenDialog2: TOpenDialog;
procedure Button1Click(Sender: TObject);
//procedure Button2Click(Sender: TObject);
//procedure Button3Click(Sender: TObject);
//procedure Button4Click(Sender: TObject);
//procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
F,E: TFileStream;
WaveHeader: TWaveHeader;
WaveHeader1: TWaveHeader1;
i: integer;
Dat: array of SmallInt;
RiffLe: longint;
InfoLe: longint;
DataLe: longint;
WaveTyp: smallint;
C: smallint;
Fre: longint;
BytesPerSe: longint;
alig: smallint;
Bit: smallint;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
F:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
setlength(dat,1000000); // 1000000 ïðîñòî ÷òîáû ïîòåñòèòü
with WaveHeader do
setlength(data,1000000);
F.Read(WaveHeader, sizeof(TWaveHeader));
with WaveHeader do
begin
memo1.Lines.Text:=inttostr(dataLen);
RiffLe:=Rifflen;
InfoLe:=Infolen;
DataLe:=Datalen;
WaveTyp:=WaveType;
C:=Ch;
Fre:=Freq;
BytesPerSe:=BytesPerSec;
alig:=align;
Bit:=Bits;
for i:=0 to 100 do // 100 ïðîñòî ÷òîáû ïîòåñòèòü
dat[i]:=data[i];
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if opendialog1.Execute then
E:= TFileStream.Create(OpenDialog1.FileName, fmOpenReadWrite);
E.Read(WaveHeader1, sizeof(TWaveHeader1));
with WaveHeader1 do
begin
RiffLen1:=Riffle;
InfoLen1:=Infole;
DataLen1:=Datale;
WaveType1:=WaveTyp;
Ch1:=C;
Freq1:=Fre;
BytesPerSec1:=BytesPerSe;
align1:=alig;
Bits1:=Bit;
for i:=0 to 10000000 do
data1[i]:=dat[i];
end;
E.Seek(0,sofrombeginning);
E.Write(WaveHeader1, sizeof(TWaveHeader1));
end;
end.
|