dim
-
Постов
44 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные dim
-
-
спасибо, и в правду так проще, возвращаюсь назад в будущее )
-
есть IdHTTPServer который формирует страницу с формой при нажатии Submit пытаюсь обработать ответ и если есть кириллица в поле то она возвращает не то что вводим
если в форме ввести 011к
marsh:=ARequestInfo.Params.Values['marsh']; то на выходе 011ê.
пробовал TIdURI.ParamsEncode не работает
через online раскодировщики определил что это WINDOWS-1252, как получить ее в нормальной кодировке?
заголовок страницы
AResponseInfo.ContentEncoding := 'windows-1251';
AResponseInfo.ContentType := 'text/html; charset=windows-1251';
AResponseInfo.ContentLanguage := 'ru';
AResponseInfo.CharSet := 'windows-1251'; -
24 минуты назад, krapotkin сказал:
ну так и приведите пример то. циклы не могут быть сломаны. это привело бы к полному коллапсу
какой еще пример привести?
я и так привел пример кода всей процедуры, написал какие значения получает переменная
rz:=Length(CartList); возвращает 1
соответственно for iio := 0 to rz-1 do begin должен быть цикл от 0 до 0 (1-1=0) но он делает цикл от 1 до 0
если я делаю for iio := 1 to rz do begin то он делает от 2 до 1
значения iio я смотрю в отладчике
я уже не знаю как описать ситуацию более понятно для Вас и отстаньте от CartList она вообще тут не причем, я так же делал и rz:=1;
-
блииииин, еще раз говорю CartList не имеет отношения к вопросу, вопрос касается цикла
-
ну дык CartList - локальная переменная. не инициализирована.
ну я же отделил ... это значит она объявлена где то еще и там все с ней сделано
по ней как раз проблем нет, проблема в цикле.
я пока другим циклом сделал while , а там "шамана надо вызывать" хотя в других процедурах for работает штатно
-
TCartList = array of TRec; ... var lb:TListBoxItem; rz:integer; iio:integer; CartList:TCartList; Rec:TRec; begin if CartList<>nil then begin rz:=Length(CartList); for iio := 0 to rz-1 do begin Rec:=CartList[iio]; end; end; end;
все банально
-
7 часов назад, Akad сказал:
Что такое CartList? Зачем High использовать (от слова вообще)? Что такое rz? Если for 0 to 0, то 1 раз цикл выполнится.
P.S. Почему бы на форумах не перестать считать всех телепатами?
потому что это не важно, проблема в том, что for iio := 0 to rz do begin назначает iio=1 и цикл не выполняет (rz=0 это написано)
причем если делаешь for iio := 1 to rz+1 do begin, в просмотре показывает iio=2 и цикл опять не выполняется
такое ощущение что firemonkey сошла сума
-
тогда i=2 ставит
-
блин, что делаю не так (под андроид)
var iio:integer;
begin
rz:=High(CartList);// возвращает 0 хотя есть 1 запись в массиве
for iio := 0 to rz do begin// цикл не выполняется так как iio=1 в отладчике
end;
уже всю голову сломал подскажите что не так -
string[x] или shortstring и все будет писаться (в обычной Delphi)
-
в моем коде акцент не на запись в файл (это я для примера вставил, даже не смотрел будет ли работать), а на объявление переменной f:file of TMyRec которую с строками я не могу выполнить. Да можно извратиться вместо string объявить array[1..25] of char, но это усложняет реализацию.
и haword прав, когда тупо надо скинуть массив в файл то такая запись работает проще и быстрее
-
пришлось через ini делать, просто сроки поджимают по этому надо то что быстро реализовать и будет работать
по поводу хранить в JSON надо будет реализовать на будущее, вот почему в FireMonkey все через ....
-
Подскажите как сохранить в файл типизированный массив под андроид, раньше делал:
TMyRec = record id : string; name : string; nomer : string; fio : string; end; TMyList = array of TMyRec; MyList:TMyList; ...... f:file of TMyRec; MyRec:TMyRec; begin AssignFile(F,path); Rewrite(F); Seek(F,0); rz:=High(MyList); for i := 0 to rz do begin MyRec:=MyList[i]; Write(F,MyRec); end;
для андроида этот код не работает ошибка на f:file of TMyRec; так как использую string (string[x] и shortstring тоже не подходит)
подскажите как можно еще массив сохранить в файл и считать его потом
-
Ups, блин убил пару дней
-
в смысле обман? я гружу файл в StringList, а потом его помещаю в XML
-
сделал через
ls:=TStringList.Create;
ls.LoadFromFile(strXml);XMLDocument1.XML:=ls;
все заработало -
XMLDocument1.LoadFromXML(strXml);
XMLDocument1.Active := True;<== Вот тут и ошибкая пробовал и создавать новый файл (скопировав с оригинала) и символы смотрел уже все нормально
но так как файл приходит автоматом и загрузка должна быть без участия пользователя хотелось бы что бы нормально грузило (php ее грузит)
-
пользуюсь стандартным компонентом XMLDocument и стразу при загрузке ошибка
-
No errors were found
-
а как определить в чем ошибка, внешне вроде все нормально
<?xml version="1.0" encoding="UTF-8"?> <CIM CIMVERSION="2.0" DTDVERSION="2.2"> <DECLARATION> <DECLGROUP> <VALUE.OBJECT> <INSTANCE CLASSNAME="NEW"> <PROPERTY_1 TYPE="string" NAME="ID"> <VALUE>1</VALUE> </PROPERTY_1> <PROPERTY_2 TYPE="string" NAME="СБ_ID"> <VALUE>SD100000001</VALUE> </PROPERTY_2> <PROPERTY_4 TYPE="string" NAME="ИНФОРМАЦИЯ"> <VALUE>Шаблон::</VALUE> </PROPERTY_4> <PROPERTY_5 TYPE="string" NAME="ИНИЦИАТОР"> <VALUE>Сергей Николаевич</VALUE> </PROPERTY_5> <PROPERTY_6 TYPE="string" NAME="РГ"> <VALUE>для сотрудников</VALUE> </PROPERTY_6> <PROPERTY_7 TYPE="string" NAME="ПБ"> <VALUE>42</VALUE> </PROPERTY_7> </INSTANCE> </VALUE.OBJECT> <VALUE.OBJECT> <INSTANCE CLASSNAME="NEW"> <PROPERTY_1 TYPE="string" NAME="ID"> <VALUE>2</VALUE> </PROPERTY_1> <PROPERTY_2 TYPE="string" NAME="СБ_ID"> <VALUE>SD100000002</VALUE> </PROPERTY_2> <PROPERTY_4 TYPE="string" NAME="ИНФОРМАЦИЯ"> <VALUE>Шаблон::</VALUE> </PROPERTY_4> <PROPERTY_5 TYPE="string" NAME="ИНИЦИАТОР"> <VALUE>Сергей Николаевич</VALUE> </PROPERTY_5> <PROPERTY_6 TYPE="string" NAME="РГ"> <VALUE>для сотрудников</VALUE> </PROPERTY_6> <PROPERTY_7 TYPE="string" NAME="ПБ"> <VALUE>42</VALUE> </PROPERTY_7> </INSTANCE> </VALUE.OBJECT> </DECLGROUP> </DECLARATION> </CIM>
-
подскажите чем можно парсить xml?
пробовал XMLDocument
XMLDocument1.LoadFromXML(strXml);
XMLDocument1.Active := True;
но он при загрузке файла выдает ошибку"Ошибка в элементе верхнего уровня документа
Line:1"
этот файл мне приходит от поставщика и при открытии другими программами не ругается на структуру
-
Нарооод, ну не ужели ни кто не пользуется определением адресов по координатам????
выходит ошибка на строку
fGeocoder.GeocodeReverse(myCoordinat);
myCoordinat при вызове имеет правильные координаты, а в unit System.Sensors;
class procedure TGeocoder.GeocodeReverse(
const Coords: TLocationCoord2D);
begin
if Geocoding then
GeocodeError(SGeocodeMultipleRequests);
FGeocoding := True;
try
GeocodeReverseRequest(Coords);
finally
FGeocoding := False;
end;
end;
Coords становится равный {Latitude = -1.1427781371357079e+180, Longitude = -4.8767659040532049e+176}и соответственно вылазит ошибка
-
я сделал так, пробую вызвать метод
try
ClientModule1.ServerMethods1Client.Send_messageOperator(Person.Phone,task_operator.Text);
except
ClientModule1:=nil;
ConnectToServer;
exit;
end;
и если ошибка то в ConnectToServerif ClientModule1=nil then
ClientModule1:= TClientModule1.Create(self)
else
ClientModule1.DataModuleCreate(nil);
-
а как можно менять иконку?
дописал компонент, вроде работает, если кому надо:
uses
VCL.Graphics;....
protected
procedure SetIcon(Icon: TIcon);
public
property Icon: TIcon read FIcon write SetIcon;...
procedure TCustomTrayIcon.SetIcon(Icon: TIcon);
begin
FIcon:=Icon;
FData.hIcon:=FIcon.Handle;
Refresh;
end;
отследить изменение файла
в Прочие вопросы
Опубликовано
подскажите как можно отследить, что в определенной папке изменился файл в реальном времени
у меня пока только на ум приходит по таймеру пробегаться по всем файлам и сличать с данными в программе (например кэш файла) может есть какой то другой способ?