Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Вниз

xml не отображает кириллицу   Найти похожие ветки 

 
smart   (2011-03-14 13:04) [40]

Вот:
begin
 stringstream:=TStringStream.Create("");
 stringstream2:=TStringStream.Create("");
 
try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
   stringstream.WriteString("<document>");
   stringstream.WriteString("<function name="catalogCreate">");
   stringstream.WriteString("<param name="login">logg</param>");
   stringstream.WriteString("<param name="pass">password</param>");
   stringstream.WriteString("<param name="idEmployer">1</param>");
   stringstream.WriteString("</function>");
   stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
   stringstream.WriteString("</document>");
   IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
   IdHTTP1.Request.ContentLength:=stringstream.Size;
   stringstream.Position:=0;
   stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
   Form1.IdHTTP1.Disconnect;
   Form1.XMLDocument1.LoadFromStream(stringstream2);
   Form1.XMLDocument1.Active:=true;
   Form1.XMLDocument1.SaveToFile("c:\expl.xml");
   finally
   stringstream.Free;
 end;


 
smart   (2011-03-14 13:05) [41]

С поправкой:
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");

try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
  stringstream.WriteString("<document>");
  stringstream.WriteString("<function name="catalogCreate">");
  stringstream.WriteString("<param name="login">logg</param>");
  stringstream.WriteString("<param name="pass">password</param>");
  stringstream.WriteString("<param name="idEmployer">1</param>");
  stringstream.WriteString("<param name="name"><![CDATA[Новый справочик]]></param>");
  stringstream.WriteString("</function>");
  stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
  stringstream.WriteString("</document>");
  IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
  IdHTTP1.Request.ContentLength:=stringstream.Size;
  stringstream.Position:=0;
  stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
  Form1.IdHTTP1.Disconnect;
  Form1.XMLDocument1.LoadFromStream(stringstream2);
  Form1.XMLDocument1.Active:=true;
  Form1.XMLDocument1.SaveToFile("c:\expl.xml");
  finally
  stringstream.Free;
end;


 
Медвежонок Пятачок ©   (2011-03-14 13:15) [42]

Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream);
ShowMessage(stringstream.string);

Вот твои крякозябры.

И как видишь, никакой xml здесь не использовался, и не мешал русскому наименованию папки.


 
Медвежонок ХМЛ ©   (2011-03-14 13:17) [43]

Точнее даже так

ShowMessage(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));


 
smart   (2011-03-14 13:25) [44]

Ошибка. в названиях каталога те же иероглифы...


 
Медвежонок ХМЛ ©   (2011-03-14 13:26) [45]

Все, я пас......
Медицина бессильна


 
Плохиш ©   (2011-03-14 13:52) [46]


> smart   (14.03.11 13:04) [40]

Какое отношение всё это <...> имеет к xml и созданию каталогов?


 
smart   (2011-03-14 13:55) [47]

С помощью этого кода создается каталог. <function name="catalogCreate"> - Создать новый каталог


 
Плохиш ©   (2011-03-14 14:02) [48]

Пора нанимать программиста.


 
brother ©   (2011-03-15 06:07) [49]

smart
ты понял к чему тебе предлагают нанять программиста?


 
smart   (2011-03-15 08:56) [50]


> Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.
> php", stringstream);
> ShowMessage(stringstream.string);
>
> Вот твои крякозябры.
>
> И как видишь, никакой xml здесь не использовался, и не мешал
> русскому наименованию папки.


Проблемы у меня IdHTTP1.Post-кодировкой. Вместо Utf нужно использовать windows-1251, проблема кажется в этом. Как с этим разобраться?


 
sniknik ©   (2011-03-15 09:26) [51]

> Вместо Utf нужно использовать windows-1251
это тебя "осенило", или наконец то прочел ответы в ветке?

на самом деле windows-1251 единственное где нужно это в виндовой функции создания каталога (если не юникодная), а в Post, xml, ... вполне пойдет любая.
лирика.

> Как с этим разобраться?
учиться учится и еще раз учиться! (как расписывал ручку тов.Ленин)

p.s. все больше и больше смахивает на попытку "развода" (ну не бывает настолько ....).


 
smart   (2011-03-15 09:56) [52]

И времени и желания нет и не было "на развод". Просто нужна помощь (((


 
RWolf ©   (2011-03-15 11:06) [53]


> Как с этим разобраться?

отладчиком.
пошаговым выполнением алгоритма, с просмотром всех переменных.


 
smart   (2011-03-15 11:14) [54]

Отладчиком пользовался, все просмотрел. В программе  все нормально, кроме кодировки.
Я думаю что проблема в этой строке, но где именно пока непонятно...
> stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.
> 888.888.888/api/functions.php", stringstream));


 
Dennis I. Komarov ©   (2011-03-15 11:30) [55]


> Я думаю что проблема в этой строке

Да нет, проблема совсем в другом месте...


 
smart   (2011-03-15 11:33) [56]


> Да нет, проблема совсем в другом месте...
>

Где же?


 
brother ©   (2011-03-15 11:38) [57]

у тебя в коде вестимо


 
Медвежонок Пятачок ©   (2011-03-15 11:45) [58]

в [41] ошибок нет, хотя код и еретический.
ошибка дальше, в неприведенном здесь коде.


 
DiamondShark ©   (2011-03-15 11:45) [59]


> smart   (15.03.11 11:33) [56]
> > Да нет, проблема совсем в другом месте...> Где же?

В реализации http://888.888.888.888/api/functions.php


 
Dennis I. Komarov ©   (2011-03-15 11:47) [60]


> brother ©   (15.03.11 11:38) [57]

вообще, я не это имел ввиду...


 
Медвежонок ХМЛ ©   (2011-03-15 11:53) [61]

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


 
smart   (2011-03-15 12:11) [62]


> ошибка дальше, в неприведенном здесь коде.

Вот листинг:

function TForm1.catalogCreate(Login: string;Password1: string): string;
var
 stringstream: TStringStream;
 stringstream2: TStringStream;
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");

try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
 stringstream.WriteString("<document>");
 stringstream.WriteString("<function name="catalogCreate">");
 stringstream.WriteString("<param name="login">logg</param>");
 stringstream.WriteString("<param name="pass">password</param>");
 stringstream.WriteString("<param name="idEmployer">1</param>");
 stringstream.WriteString("<param name="name">Новый справочик></param>");
 stringstream.WriteString("</function>");
 stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
 stringstream.WriteString("</document>");
 IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
 IdHTTP1.Request.ContentLength:=stringstream.Size;
 stringstream.Position:=0;
   ShowMessage(Form1.IdHTTP1.Post("http://"888.888.888"/api/functions.php", stringstream));
Form1.IdHTTP1.Disconnect;
 Form1.XMLDocument1.LoadFromStream(stringstream2);
 Form1.XMLDocument1.Active:=true;
 Form1.XMLDocument1.SaveToFile("c:\expl.xml");
 finally
 stringstream.Free;
end;
 end;

procedure TForm1.Button1Click(Sender: TObject);
var
 t: String;
begin
t:=    MD5DigestToStr(MD5String(Password.Text));
IdEmpl1.Text:= catalogCreate(Login.Text,t);
end;


Попробовал так, но результата пока нет...


 
Медвежонок Пятачок ©   (2011-03-15 12:19) [63]

ты запарил уже своей непробиваемостью.

вот пришел к тебе ответ и ты его сохранил.
и в нем имя папки.
Form1.XMLDocument1.SaveToFile("c:\expl.xml");

где ты его читаешь?
имя для создаваемой папки где и как читаешь?


 
smart   (2011-03-15 12:31) [64]

Новый каталог создается в другой - параллельной программе. Там и весь список папок. Только в название нового каталога сейчас там Новый справочник


 
brother ©   (2011-03-15 12:34) [65]

ты точно - НЕ ПРОБИВАЕМЫЙ!!!!


 
brother ©   (2011-03-15 12:36) [66]

> вот пришел к тебе ответ и ты его сохранил.

и скорее всего уже битый...


 
Медвежонок ХМЛ ©   (2011-03-15 12:37) [67]

Новый каталог создается в другой - параллельной программе.

Тогда спи спокойно.
У тебя ошибок нету.


 
brother ©   (2011-03-15 12:40) [68]

> Form1.XMLDocument1.LoadFromStream(stringstream2);
> Form1.XMLDocument1.Active:=true;
> Form1.XMLDocument1.SaveToFile("c:\expl.xml");

где его заполнение/чтение?


 
Медвежонок ХМЛ ©   (2011-03-15 12:48) [69]

это делается в третьей перпендикулярной программе.
разве не понятно?


 
brother ©   (2011-03-15 12:49) [70]

гыгы, я догадывался)


 
Плохиш ©   (2011-03-15 12:52) [71]

Судя по тому, что это блондинко засовывает в TStringStream, в /api/functions.php реализован обычный веб-сервис. Так почему бы не создать нормального клиента с помощью встроенного в делфи мастера?

PS. Долго ещё оно будет бодаться, используя комбинируя компоненты поддерживающие юникод и не поддерживающие :-))


 
Dennis I. Komarov ©   (2011-03-15 12:56) [72]

Да пусть бодается, если brain.sys встал криво...


 
sniknik ©   (2011-03-15 13:18) [73]

> с полученным из пхп ответом надо работать как с xml
х.м. ... у меня бывает от пхп рекордсеты(/json) приходят, или бинарные данные (например иконки/логотип компании), по протоколу/договоренности... (и кстати .php в конце может и не быть признаком обработчик пхп. как "ту сторону" реализуют я часто не знаю, а вот общие части протокола, со вполне определенными ссылками/функциями для всех одинаковы... эээ... в определенных пределах. стремимся к этому, это точно)

я к тому, уточнение, что "работать как с xml" надо только если пришел xml, что в данном случае не очевидно (и вряд ли будет с его "подходом").


 
smart   (2011-03-15 13:26) [74]


> "работать как с xml" надо только если пришел xml, что в
> данном случае не очевидно


Собственно xml:
<?xml version="1.0" encoding="windows-1251" ?>
- <document>
- <info>
 <api_version>1.0</api_version>
 <time>10:11:15</time>
 <execution_time>0.24351406097412</execution_time>
 </info>
- <result value="0">
 <id>120</id>
 <message>120</message>
 </result>
 </document>


 
Anatoly Podgoretsky ©   (2011-03-15 13:28) [75]

> brother  (15.03.2011 12:36:06)  [66]

Не битый, а избитый, но не до конца.


 
app ©   (2011-03-15 13:30) [76]

Надоело, потрепаться можно и в Прочем


 
Медвежонок Пятачок ©   (2011-03-15 13:31) [77]

Мужик, тебе же сказали, покойся с миром, у тебя нет ошибок.
Их допустил программист второй, параллельной программы.
А ты иди в кассу за премией.


 
sniknik ©   (2011-03-15 14:08) [78]

> Собственно xml:
все таки xml... а чего же тогда xml в xml как есть с заголовком вкладывается? оно что должно телепатически правильно "сложить" document-ы?


 
Медвежонок Пятачок ©   (2011-03-15 14:18) [79]

и главное где же в нем хоть намек на имя каталога?


 
Conflict ©   (2011-03-15 14:35) [80]

оффтоп
А на самом деле в заголовок попадает кракозябла из [5] вот какая, а не Новый справочник:
Вид Поступления
CP1251 &#8594; UTF-8
Вид Поступления
/оффтоп



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.61 MB
Время: 0.006 c
8-1212752371
zuzick
2008-06-06 15:39
2011.07.03
Отключить звук в TMediaPlayer


15-1300397390
Юрий
2011-03-18 00:29
2011.07.03
С днем рождения ! 18 марта 2011 пятница


15-1300208090
И. П. Павел
2011-03-15 19:54
2011.07.03
Прогноз погоды на JAVA


15-1300355136
OW
2011-03-17 12:45
2011.07.03
Работник отдела персонала - что за зверь?


2-1301350488
Германн
2011-03-29 02:14
2011.07.03
Непонятный глюк.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский