Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2012, 07:28   #1
sky132
 
Регистрация: 28.02.2011
Сообщений: 5
По умолчанию Проблема с отправкой файла *.wav

Здравствуйте!

Смысл: Записывать 10 мин. аудио в "дата+время.wav" файл, после чего отправлять его на некий адрес посредством IdSMTP. Всё играет, но...

Проблема:
Проходят 10 мин. приходит первый файл, проходит еще 10 мин. и по идее должен придти второй, ан нет приходит и первый и второй (т.е. 2 файла), проходит еще 10 мин. и в ящике письмо уже с тремя файлами.


Пытался удалять старый файл, но ругается, мол файл не найден.

Вот код:

procedure TForm1.Timer1Timer(Sender: TObject);
var
verz: String;
nameF: String;
i:integer;
begin
label1.Caption:=inttostr(strtoint(l abel1.Caption)+1);
mciSendString('STOP mysound', nil, 0, Handle);
GetDir(0, verz);
times:=(copy(timetostr(time),1,2))+ (copy(timetostr(time),4,2));
if times[2]=':' then times:='0'+times[1]+(copy(timetostr(time),3,2));
dates:=(copy(datetostr(date),1,2))+ (copy(datetostr(date),4,2));
nameF:=dates+times+'.wav';
mciSendString(PChar('SAVE mysound ' + verz +'/'+nameF), nil, 0, Handle);
mciSendString('CLOSE mysound', nil, 0, Handle);
mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mysound', nil, 0, Handle);
mciSendString('SET mysound TIME FORMAT MS ' + // set time
'BITSPERSAMPLE 8 ' + // 8 Bit
'CHANNELS 1 ' + // MONO
'SAMPLESPERSEC 8000 ' + // 8 KHz
'BYTESPERSEC 8000', // 8000 Bytes/s
nil, 0, Handle);
mciSendString('RECORD mysound', nil, 0, Handle);

//setup SMTP - ПЕРЕДАЧА ФАЙЛА ========================->
SMTP.Host := 'smtp.mail.ru';
SMTP.Port := 25;

//setup mail message
MailMessage.From.Address := 'pochta@mail.ru';
MailMessage.Recipients.EMailAddress es := 'support@cybercore.com.ua';
MailMessage.Subject := 'File - '+verz+'/'+nameF;
MailMessage.Body.Text := 'Date - '+datetostr(date)+' Time - '+timetostr(time);
StatusMemo.Lines.Insert(0, 'File: ' + nameF);
label2.Caption:=pChar(nameF);
if FileExists(nameF) then TIdAttachment.Create(MailMessage.Me ssageParts, nameF) ;
//send mail
try
try
SMTP.Connect(1000) ;
SMTP.Send(MailMessage) ; <-- вот здесь прога останавливается
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
timer1.Enabled:=true;
deletefile(nameF);
end;


Видимо что-то с указателями в PChar. Подскажите может кто встречался с подобной проблемой. Мудрёно как то, не думал что в этом проблема будет...

Заранее благодарен.
Безумие означает продолжать делать то же самое и ожидать другого результата. (Эйнштейн)
sky132 вне форума Ответить с цитированием
Старый 04.02.2012, 11:25   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну причина в том что вы не очищаете сообщение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.02.2012, 22:42   #3
sky132
 
Регистрация: 28.02.2011
Сообщений: 5
По умолчанию

Пепел Феникса, подскажите как это можно сделать? я так понимаю новое значение прибавляется к предыдущему, а нужно что бы после передачи очищалось имя файла для аттача...
Безумие означает продолжать делать то же самое и ожидать другого результата. (Эйнштейн)
sky132 вне форума Ответить с цитированием
Старый 07.02.2012, 03:09   #4
Den7656
Форумчанин
 
Аватар для Den7656
 
Регистрация: 08.06.2011
Сообщений: 103
По умолчанию

Попробуйте IdMessage1.Clear;
Жизнь хорошая штука -и⊥ʎdʞ ин ʞɐʞ
Den7656 вне форума Ответить с цитированием
Старый 09.02.2012, 04:20   #5
sky132
 
Регистрация: 28.02.2011
Сообщений: 5
По умолчанию

Den7656, спасибо, все заиграло не там искал ваще...
Безумие означает продолжать делать то же самое и ожидать другого результата. (Эйнштейн)

Последний раз редактировалось sky132; 09.02.2012 в 04:23.
sky132 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отправкой почты. DeDoK Работа с сетью в Delphi 0 12.12.2010 19:05
Проблема с отправкой письма. Mollerat Работа с сетью в Delphi 1 31.10.2010 20:21
Проблема с отправкой почты Genesis PHP 2 18.05.2009 15:35