Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Delphi XE2 Ошибка

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 11.04.2012, 16:25   #1
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Delphi XE2 Ошибка

Вот код:
Код:
var
St:WideString;
begin
try
St:=IdHTTP1.Get('Тут_url' ;
Delete(St,1,pos('<variable name="mp" type="int">',St)+length('<variable name="mp" type="int">')-1);
Delete(St,pos('</variable>',St),length(St));
Label9.Caption:=St;
except
on e:Exception do
end;
end;
Выдает ошибку:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Хотя в Delphi7 все хорошо.
Из за чего это может быть?

Последний раз редактировалось Erstown; 11.04.2012 в 17:43.
  Ответить с цитированием
Старый 11.04.2012, 22:10   #2
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

WideString? Хм А попробуй St: String;
Если интересно, могу обьяснить почему.
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 11.04.2012, 22:41   #3
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Цитата:
Сообщение от J-FobosПосмотреть сообщение
WideString? Хм А попробуй St: String;
Если интересно, могу обьяснить почему.

Вот, все. Работает.
А да, если можно то почему? Ведь в Delphi 7 с WideString все нормально.
  Ответить с цитированием
Старый 11.04.2012, 22:56   #4
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Оно и с WideString будет нормально работать, просто в D7 бага (ну по крайней мере сейчас это считается багой, раньше думали что так и надо) была.

Давай в режиме диалога обьясню

У нас имеется:

St:WideString;
pos('<variable name="mp" type="int">',St)

А какого типа вот эта конструкция? '<variable name="mp" type="int">'

Жду ответа, хотелось бы обоснованного
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 12.04.2012, 01:06   #5
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Цитата:
Сообщение от J-FobosПосмотреть сообщение
Оно и с WideString будет нормально работать, просто в D7 бага (ну по крайней мере сейчас это считается багой, раньше думали что так и надо) была.

Давай в режиме диалога обьясню

У нас имеется:

St:WideString;
pos('<variable name="mp" type="int">',St)

А какого типа вот эта конструкция? '<variable name="mp" type="int">'

Жду ответа, хотелось бы обоснованного

Это xml. Может знаете, редактор персонажей, а точнее IWeb.
  Ответить с цитированием
Старый 12.04.2012, 10:45   #6
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Я имел ввиду чуть другое Тип переменной. Если взять такой пример:

St:WideString;
pos('qwerty',St)

'qwerty' - это строка, а строка имеет тип string, а string может быть UnicodeString/AnsiString/ShortString/WideString.
В D7 по умолчанию эта стркоа будет AnsiString, а в D9 и выше UnicodeString. Так как тип string по умолчанию вы не изменяли (скорее всего), то у вас строка '<variable name="mp" type="int">' имеет тип UnicodeString и получается, что вы пытаетесь искать UnicodeString в WideString, на что компилятор и ругается. В D7 такой проверки компилятор просто не проводит и в большинстве случаев это не приводит к ошибкам, так как в WideString редко попадают азиатские символы.

Если нужно использовать именно тип WideString, то надо либо указать тип переменной string по умолчанию WideString (директива {$H}), либо использовать следующий код:


Код:
St,St1:WideString;

St1:='<variable name="mp" type="int">';
pos(St1,St);
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 12.04.2012, 13:08   #7
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Цитата:
Сообщение от J-FobosПосмотреть сообщение
Я имел ввиду чуть другое Тип переменной. Если взять такой пример:

St:WideString;
pos('qwerty',St)

'qwerty' - это строка, а строка имеет тип string, а string может быть UnicodeString/AnsiString/ShortString/WideString.
В D7 по умолчанию эта стркоа будет AnsiString, а в D9 и выше UnicodeString. Так как тип string по умолчанию вы не изменяли (скорее всего), то у вас строка '<variable name="mp" type="int">' имеет тип UnicodeString и получается, что вы пытаетесь искать UnicodeString в WideString, на что компилятор и ругается. В D7 такой проверки компилятор просто не проводит и в большинстве случаев это не приводит к ошибкам, так как в WideString редко попадают азиатские символы.

Если нужно использовать именно тип WideString, то надо либо указать тип переменной string по умолчанию WideString (директива {$H}), либо использовать следующий код:


Код:
St,St1:WideString;

St1:='<variable name="mp" type="int">';
pos(St1,St);

Ясно, спасибо =)
А вот еще один вопрос есть. Как можно реализовать с помощью примера выше замену значения. Вот например, я вытянул в Edit то ,что находится после <variable name="mp" type="int"> и перед чем - то там. И нужно это значение заменить программно, допустим через тот же самый Edit
  Ответить с цитированием
Старый 12.04.2012, 19:34   #8
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Способов куча.

1. Можно каждый символ по отдельности. Например: St[8]:='a'; St[9]:='s'; St[10]:='d'; заменит 8-й, 9-й, 10-й символы в строке.

2. Можно удалить фрагмент, а потом вставить на его место нужный. Для этого есть процедуры Insert и Delete.

3. Есть функции StringReplace и StuffString, можно воспользоватся ими.

4. Можно скопировать часть строки до и часть строки после, а потом соединить их с нужным фрагментом.
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 13.04.2012, 00:40   #9
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Мне надо заменить в самой странице.
То есть есть страница, что то меняешь, нажимаешь сохранить и сохраняется.
Вот типо такого.
Например:
<table width="450" border="1" cellspacing="0" cellpadding="3"> заместо "450", поставить "500".

Последний раз редактировалось Erstown; 13.04.2012 в 00:50.
  Ответить с цитированием
Старый 13.04.2012, 11:52   #10
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Я об этом и написал
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 13.04.2012, 17:45   #11
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Не могу что - то сделать.
Можешь какой нибудь пример написать?
Код:
procedure TForm1.Button9Click(Sender: TObject);
var
St:String;
begin
try
St:=IdHTTP1.Get('http://' + Edit1.Text + '/iweb/role/modrolexml.jsp?roleid=' + Edit2.Text);
Delete(St,1,pos('<variable name="mp" type="int">',St)+length('<variable name="mp" type="int">')-1);
Delete(St,pos('</variable>',St),length(St));
Label9.Caption:=St;
except
on e:Exception do
end;
end;
Вот по этому адресу:
St:=IdHTTP1.Get('http://' + Edit1.Text + '/iweb/role/modrolexml.jsp?roleid=' + Edit2.Text);
Надо поменять то, что стоит перед и после:
Delete(St,1,pos('<variable name="mp" type="int">',St)+length('<variable name="mp" type="int">')-1);
Delete(St,pos('</variable>',St),length(St));
  Ответить с цитированием
Старый 13.04.2012, 21:15   #12
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Delphi XE2 Ошибка

Erstown, дай кусок из ответа сервера программе и скажи, что хочешь менять. Так ничего не ясно
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 15.04.2012, 13:48   #13
 Разведчик
Аватар для Erstown
 
Erstown на правильном путиErstown на правильном пути
Регистрация: 07.04.2012
Сообщений: 5
Популярность: 170
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

Распишу все от и до.
Допустим есть ссылка: [Ссылки могут видеть только зарегистрированные пользователи. ]
При переходе на нее, открывается страничка(Редактор xml) с информацией об определенном игроке.
На этой страничке, можно редактировать персонажа, менять его уровень и т.д
Например мне нужно поменять вот это значение - "200000000",
[Ссылки могут видеть только зарегистрированные пользователи. ]
на свое, выбранное в программе, например в SpinEdit.
После чего сохранить отредактированную информацию, нажав:
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 15.04.2012, 15:53   #14
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Delphi XE2 Ошибка

[Ссылки могут видеть только зарегистрированные пользователи. ]
Там уже все готовое
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 15.04.2012, 21:00   #15
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Delphi XE2 Ошибка

Вот тебе функшн:
Код:
function ChageValue(Source,NewValue):string;
var
s:string;
begin
s:=Copy(Source,Pos('"money"',Source)+19,50);
Delete(s,Pos('</variable>',s),Length(s)-Pos('</variable>',s));
Delete(Source,Pos('"money"',Source)+19,Length(s)-1);
Insert(NewValue,Source,Pos('"money"',Source)+19);
result:=Source;
end;
Вот тебе, как его юзать:
Код:
var
s,s1:string;
begin
s1:=IdHTTP.Get('http://blalba.net/');
s:=ChangeValue(s1,'100500');
end;
В итоге значение 2000000 поменяется на 100500.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 7! danil_ Общение и обсуждение CrossFire 1 19.11.2013 15:41
[Информация] Помощь в Delphi 7 и в других версиях Delphi Babls77 Pascal/Delphi 4 03.11.2011 22:27
Delphi ошибка "connection reset by peer" Stasones Вопросы и ответы, обсуждения 2 24.11.2010 02:08

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 17:42.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net