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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2010, 16:24   #11
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

Переписываю функцию, наткнулся на ошибку при компиляции
Код:
s:=sourse;
 //удаляем лишюю часть в operate
 bpos:=pos('operate',s);
 endpos:=posex(',',s,bpos+8);
 delete(s,bpos+8,length(copy(s,bpos+8,endpos-(bpos+8))));
[DCC Error] Unit3.pas(133): E2066 Missing operator or semicolon
[DCC Error] Unit3.pas(133): E2014 Statement expected, but expression of type 'string' found

Туплю сегодня, поэтому найти сам не могу


действительно затупил, извиняюсь, нашел ошибку: переменную 'delete' случайно назвал)
fezilk24 вне форума Ответить с цитированием
Старый 14.06.2010, 16:43   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
<img class="playimg" onclick="return operate(93113035,5007,86541345,'db6 32ccba843',283);" id="imgbutton93113035" nosorthandle="true" src="images/play.gif"/>
по такой строке отменно все выдало, проверьте верно ли все передается, там иногда через JS грузится

на какой именно строке ошибка?

вечером, как вернусь домой, напишу оптимизированный вариант.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.06.2010 в 16:46.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.06.2010, 17:10   #13
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

В функции ошибки не было, но не передавалась ссылка
написал сам, но ф-ия огромная, надо её как-нибудь сжать) и вообще, пол-программы сжать.

Код:
function TForm3.AudioLink(sourse:string):string;
var s,link,p1,p2,p3,audio:string;
bpos,endpos:integer;
begin
 s:=sourse;
 //удаляем лишюю часть в operate
 bpos:=pos('"audio',s);
 endpos:=posex('"',s,bpos+6);
 audio:=copy(s,bpos+6,endpos-(bpos+6));
 delete(s,bpos,length(audio));
 delete(s,pos(audio,s),length(audio));
 //получаем первую часть ссылки
 bpos:=pos(',',s);
 endpos:=posex(',',s,bpos+1);
 p1:=copy(s,bpos+1,endpos-(bpos+1));
 delete(s,bpos,length(p1));
 //вторую
 bpos:=pos(',',s);
 endpos:=posex(',',s,bpos+1);
 p2:=copy(s,bpos+1,endpos-(bpos+1));
  delete(s,bpos,length(p2));
 //и третью
 bpos:=pos(',',s);
 endpos:=posex(',',s,bpos+1);
 p3:=copy(s,bpos+1,endpos-(bpos+1));
 //удаляем кавычки в 3 части
 delete(p3,1,1);
 delete(p3,length(p3),1);
 link:='http://cs' +p1+ '.vkontakte.ru/u' +p2+ '/audio/' +p3+ '.mp3';
 Result:=link;
end;
PS. Если напишите, выложите, пожалуйста, программа ужасно тупит из-за таких неоптимизированных функций. А у меня программа грузит только первую найденную песню =) И еще, каким образом русские символы преобразовать в html-код, который пишеться в url'е? (решено, нашел ф-ию urlencode)

Последний раз редактировалось fezilk24; 14.06.2010 в 17:39.
fezilk24 вне форума Ответить с цитированием
Старый 14.06.2010, 21:15   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure VKAudioLink(s:string;Strings:TStrings);
var link:string;
    i,j:Integer;
begin
 i:=Pos('operate',s);
 while i<>0 do
  begin
   i:=PosEx('(',s,i);
   i:=PosEx(',',s,i+1);
   j:=PosEx(',',s,i+1);
   link:='http://cs'+Copy(s,i+1,j-i-1);
   i:=PosEx(',',s,j+1);
   link:=link+'.vkontakte.ru/u'+Copy(s,j+1,i-j-1);
   j:=PosEx(',',s,i+1);
   link:=link+'/audio/'+Copy(s,i+2,j-i-3)+'.mp3';
   //послежний параметр в operate это длина трека в секундах
   //суда можно добавить парсинг названия/исполнителя
   Strings.Add(link);
   i:=PosEx('operate',s,j+1);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 VKAudioLink(Memo1.Text,ListBox1.Items);//применение
end;
оптимизированей наверно уже не куда(можно одну строку убрать, но мне не хочется)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.06.2010, 20:47   #15
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

Благодарю Дописал ф-цию, добавил исполнителя и название
fezilk24 вне форума Ответить с цитированием
Старый 10.11.2010, 20:17   #16
Flexoid2
Новичок
Джуниор
 
Регистрация: 07.11.2010
Сообщений: 17
По умолчанию

Можете мне дать исходник вашей программы?

Последний раз редактировалось Flexoid2; 10.11.2010 в 20:18. Причина: Не туда написал
Flexoid2 вне форума Ответить с цитированием
Старый 16.12.2010, 23:11   #17
барон
 
Аватар для барон
 
Регистрация: 15.12.2010
Сообщений: 5
По умолчанию

Код:
function WB_AudioLinkMP3(sourse:string):string;
var s:string;
begin
 s:=sourse;
 if Pos('operate',s)=0 then exit;
 Delete(s,1,PosEx('(',s,Pos('operate',s)));
 Delete(s,1,Pos(',',s));
 sourse:='http://cs'+Copy(s,1,pos(',',s)-1);
 Delete(s,1,Pos(',',s));
 sourse:=sourse+'.vkontakte.ru/u'+Copy(s,1,pos(',',s)-1);
 Delete(s,1,Pos(',',s));
 sourse:=sourse+'/audio/'+Copy(s,2,pos(',',s)-3)+'.mp3';
 Result:=Sourse;
end;
Как эту функцию вызвать?
Достичь можно любой цели! Главное правильно мыслить!
барон вне форума Ответить с цитированием
Старый 05.02.2011, 15:58   #18
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию

Edit1.Text := WB_AudioLinkMP3(Memo1.Text);

Edit1 - это куда запишется ссылка
Memo1 - содержит html-код страницы
fezilk25 вне форума Ответить с цитированием
Старый 03.03.2011, 13:36   #19
Flexoid2
Новичок
Джуниор
 
Регистрация: 07.11.2010
Сообщений: 17
По умолчанию

Так сможете дать свой исходник?
Flexoid2 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск