motofan logo
4 страниц V  1 2 3 > »         
> 

P2k Multimedia Edit, Редактор медиа содержимого

Vovan_mail
сообщение 23.5.2005, 13:03 Закрепленное сообщение!


Мастер
****

Группа: Пользователи
Сообщений: 166
Регистрация: 20.12.2004
Из: г. Смоленск
Пользователь №: 28 543

Рейтинг: 26



:D Народ мона начать тестить прогу. Да конечно хотелось бы видеть процесс копирования............ Но не волнуйтесь по окончании копирования прога предупредит Вас. Файл в 3м заливался порядка 9 минут.

Вот весь компот (Я не программер я тока учусь) + Sourse

Прикрепленное изображение

Сообщение отредактировал Krav - 15.2.2007, 11:53
Прикрепленный файл P2kMultiEdit.rar   ( 398.95 килобайт ) Кол-во скачиваний: 4324
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vovan_mail
сообщение 20.5.2005, 7:52


Мастер
****

Группа: Пользователи
Сообщений: 166
Регистрация: 20.12.2004
Из: г. Смоленск
Пользователь №: 28 543

Рейтинг: 26



:) Мона тестить описание на 2стр>>>>

P2kMultimediaEdit
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Random
сообщение 20.5.2005, 16:04


Музыкант
******

Группа: Почётные мотофаны
Сообщений: 1 066
Регистрация: 28.1.2005
Пользователь №: 36 054
Модель телефона: iPhone 4S

Рейтинг: 921



Я правда программу не смотрел, но вот пару моих замечаний, с котрыми я столкнулся сам, когда делал свою прогу.

Перед заливкой файла надо удалять существующий уже там файл с таким же названием - поскольку если не удалить, то новый файл пишется оверх старого, и сели новй короче то в конце будет кусок старого.
Потом аттрубуты нельзя ставить системный или др. - эти файлы тело не удаляет
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vovan_mail
сообщение 20.5.2005, 16:27


Мастер
****

Группа: Пользователи
Сообщений: 166
Регистрация: 20.12.2004
Из: г. Смоленск
Пользователь №: 28 543

Рейтинг: 26



Народ. Просто не вьезжаю как эти функции работают. Пробовал так чтение файла из тела:

примитивно
var
Buf: array of Byte;
begin
SetLength(Buf, ......);
File_Create(.......,......);
File_Write(Buf,....);
File_Close;
И вот здесь уже выдаёт ошибку. Может как то циклом надо?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
creer
сообщение 20.5.2005, 16:45


Интересующийся
**

Группа: Пользователи
Сообщений: 63
Регистрация: 7.4.2004
Из: Екатеринбург
Пользователь №: 3 123
Модель телефона: T720i

Рейтинг: 11



Попробуй определенный массив.
Например, array [0..1023] of byte.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
creer
сообщение 20.5.2005, 17:14


Интересующийся
**

Группа: Пользователи
Сообщений: 63
Регистрация: 7.4.2004
Из: Екатеринбург
Пользователь №: 3 123
Модель телефона: T720i

Рейтинг: 11



Примерно вот так.
Код

var FileOut:TFileStream;
   MyBuffer: array [0..1023] of byte;
   i:integer;
File_SetPointer(0, 0);
for i:=1 to (TelephoneFileSize div SizeOf(MyBuffer)) do
 begin
   File_Read(MyBuffer, SizeOf(MyBuffer));
   FileOut.WriteBuffer(MyBuffer, SizeOf(MyBuffer));
   File_SetPointer(SizeOf(MyBuffer), 1);
 end;
File_Read(MyBuffer, TelephoneFileSize mod SizeOf(MyBuffer));
FileOut.WriteBuffer(MyBuffer, MyFile.Size mod SizeOf(MyBuffer));


Код

var FileIn:TFileStream;
   MyBuffer: array [0..1023] of byte;
   i:integer;
DeleteFile; //удаляем файл
File_SetPointer(0, 0);
for i:=1 to (TelephoneFileSize div SizeOf(MyBuffer)) do
 begin
   FileIn.ReadBuffer(MyBuffer, SizeOf(MyBuffer));
   File_Write(MyBuffer, SizeOf(MyBuffer));
   File_SetPointer(SizeOf(MyBuffer), 1);
 end;
FileIn.ReadBuffer(MyBuffer, MyFile.Size mod SizeOf(MyBuffer));
File_Write(MyBuffer, TelephoneFileSize mod SizeOf(MyBuffer));


Проверить не могу, телефона нет.
Пишу в блокноте, могу ошибиться.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vovan_mail
сообщение 21.5.2005, 7:57


Мастер
****

Группа: Пользователи
Сообщений: 166
Регистрация: 20.12.2004
Из: г. Смоленск
Пользователь №: 28 543

Рейтинг: 26



lol.gif dion, Если быть точным это не конкуренция, так как проги то не комерческие. Почти каждая прога имеет даже здесь на мотофане свой аналог от другого производителя. Это даёт стимул производителю улучшать свой программый продукт, а не сидеть на ж... ровно. Тем более свою прогу буду выкладывать с исходниками. Потому как, продвинутый пользователь должен знать что внутри, и даже подредактировать код программы. А тот кто собрался написать что-то подобное может использовать как образец, хотя может и не совсем удачный. Так что это не конкуренция-это прогресс. :P Ведь тада Vilko с Bezols тоже конкуренты?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G.off
сообщение 21.5.2005, 8:16


Меломан
******

Группа: Пользователи
Сообщений: 1 171
Регистрация: 21.9.2004
Пользователь №: 13 430
Модель телефона: спирали проводов

Рейтинг: 76.5



Vovan_mail,
dion,
да какие притензии, проблемы? всё отлично, чем больше софта будет, тем лучше(правда качественного)
правда насчёт ОpenSourse.... непоявится ли много программ недоделок из за этого?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vovan_mail
сообщение 21.5.2005, 8:37


Мастер
****

Группа: Пользователи
Сообщений: 166
Регистрация: 20.12.2004
Из: г. Смоленск
Пользователь №: 28 543

Рейтинг: 26



Цитата(Gopher @ Суббота, 21 Май 2005, 8:16)
правда насчёт ОpenSourse.... непоявится ли много программ недоделок из за этого?
*



:D Я думаю что меньше так как не зная как замутить ту или иную функцию правильно, мона налепить горбатого. А имея образец кода наобород будет меньше ошибок. А если вообще конфликт dll и рук тогда прога просто помрёт как ссылка с 20 закачками и с плохим резюме, но право чела дать ему возможность сотворить и оценить его труд будет не нарушено. Тогда получается зачем Vilko выложил p2kapi.dll - для того что бы мутили. Вот смотри соберётся прог хорошая сотня, и будет выбор, какую прогу для чего использовать? Вот твоя идея довольно таки хорошая отделить Медиа от всей хрени, которую я и поддержал. Вообще я сторонник не монстров
пять в одном, а к примеру прог: SystemEdit, MediaEdit, SeemEdit и т.п. ;)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vovan_mail
сообщение 22.5.2005, 7:07


Мастер
****

Группа: Пользователи
Сообщений: 166
Регистрация: 20.12.2004
Из: г. Смоленск
Пользователь №: 28 543

Рейтинг: 26



blink.gif Народ вот какая хрень:

procedure TOne.SaveLabClick(Sender: TObject);
var
Buf: array[0..235]of Byte;
Handle:integer;
begin
File_Delete('/a/mobile/picture/Scheme.gif');
SizeSave:=GetFileSize('C:\Scheme.gif');
Handle:=FileOpen('C:\Scheme.gif',fmOpenReadWrite);
FileRead(Handle,Buf,SizeSave);
File_Create('/a/mobile/picture/Scheme.gif',0);
File_Write(Buf,SizeSave-1);
FileClose(Handle);
File_Close;
end;

Таким вот образом работает безспорно и чётко, тобишь когда выделяешь чётко буфер по размеру файла. Но если делаешь это как динамический массив:
procedure TOne.SaveLabClick(Sender: TObject);
var
Buf: array of Byte;
Handle:integer;
begin
File_Delete('/a/mobile/picture/Scheme.gif');
SizeSave:=GetFileSize('C:\Scheme.gif');
Handle:=FileOpen('C:\Scheme.gif',fmOpenReadWrite);
SetLength(Buf,SizeSave);
FileRead(Handle,Buf,SizeSave);
File_Create('/a/mobile/picture/Scheme.gif',0);
File_Write(Buf,SizeSave-1);
FileClose(Handle);
File_Close;
end;
zootaz; Вылетает в ошибку, кто знает в чём фишка? Может dll не рулит с динамическими массивами?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
creer
сообщение 22.5.2005, 8:05


Интересующийся
**

Группа: Пользователи
Сообщений: 63
Регистрация: 7.4.2004
Из: Екатеринбург
Пользователь №: 3 123
Модель телефона: T720i

Рейтинг: 11



При чтении нельзя использовать массив неопределенной длины (ака динамический).

Попробуй так:
Код
procedure TOne.SaveLabClick(Sender: TObject);
var
Buf: array [0..1023] of Byte;
Handle:THandle;
i:word;
begin
File_Delete('/a/mobile/picture/Scheme.gif');
SizeSave:=GetFileSize('C:\Scheme.gif');
Handle:=FileOpen('C:\Scheme.gif',fmOpenRead);
File_Create('/a/mobile/picture/Scheme.gif',0);
//Записываем в цикле
for i:=1 to (SizeSave div SizeOf(Buf)) do
begin
  FileRead(Handle,Buf,SizeOf(Buf));
  File_Write(Buf,SizeOf(Buf));
  File_SetPointer(SizeOf(Buf), 1); //Хотя это возможно не надо
end;
//Дописываем то, что меньше buf
  FileRead(Handle,Buf,SizeSave mod SizeOf(Buf));
  File_Write(Buf,SizeSave mod SizeOf(Buf));
FileClose(Handle);
File_Close;
end;


Или так:
Код
var FileIn:TFileStream;
  MyBuffer: array [0..1023] of byte;
  i:integer;
begin
File_Delete('/a/mobile/picture/Scheme.gif');
FileIn:=TFileStream.Create('C:\Scheme.gif', fmOpenRead);
File_Create('/a/mobile/picture/Scheme.gif',0);
File_SetPointer(0, 0); //Наверно надо
for i:=1 to (FileIn.Size div SizeOf(MyBuffer)) do
begin
  FileIn.ReadBuffer(MyBuffer, SizeOf(MyBuffer));
  File_Write(MyBuffer, SizeOf(MyBuffer));
  File_SetPointer(SizeOf(MyBuffer), 1); //Наверно надо
end;
FileIn.ReadBuffer(MyBuffer, FileIn.Size mod SizeOf(MyBuffer));
File_Write(MyBuffer, FileIn.Size mod SizeOf(MyBuffer));
FileIn.Free;
File_Close;
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

4 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 21:42

Форум живёт: