Перейти к содержанию
Fire Monkey от А до Я

serg557

Пользователи
  • Постов

    13
  • Зарегистрирован

  • Посещение

Посетители профиля

997 просмотров профиля
  1. Где получили, для чего и как нужно использовать? Воспользуйтесь сервисом, http://2cyr.com/decode/?lang=ru например, для определения типа кодировки. Посмотрел-кодировка cp930-это где ж ее можно взять?
  2. сталкивался со схожей проблемой - решил ее через IdHTTP->Post http://fire-monkey.ru/topic/1747-kodirovka-otveta-servera-na-zagruzku-faila/ после чего WebBrowser->LoadFromStrings(IdHTTP->Response->ResponseText)-пишу по памяти, но примерно так
  3. Тема закрыта, решение нашлось благодаря теме в соседней ветке. приведу весь кусок кода- может спасу кому-то день #include <IdURI.hpp> ... TStringList *SL2= new TStringList; SL2->Clear(); OpenDialog1->Execute(); TIdMultiPartFormDataStream *PostFile= new TIdMultiPartFormDataStream; PostFile->Clear(); PostFile->AddFormField("FileName",ExtractFileName(OpenDialog1->FileName)); PostFile->AddFile("Filedata",OpenDialog1->FileName); PostFile->AddFormField("Upload","Submit Query"); SL2->Text=TIdURI::URLDecode(HTTP1->Post("http://...", PostFile)); Memo1->Text=SL2->Text; PostFile->Free(); SL2->Free(); HTTP1->Request->ContentType="application/x-www-form-urlencoded"; изменение в 11 строке и добавление include
  4. Label1->Text=Memo1->Lines->Strings[Memo1->Lines->Count-1]; по крайней мере последняя строка берется так
  5. Ну, как промежуточный вариант-сделать мобильный клиент под конкретный сайт: 1.получаешь страницу с помощью get; 2. парсишь ее как нужно (например с помощью .Pos); 3. результаты выводишь в тот же webbrowser (LoadFromStrings); 4.элементы управления выводишь на форму отдельно и обрабатывешь их post запросом; 5. п.3 6. profit А вот как сделать универсальный вариант - может еще кто подскажет
  6. SL2->SaveToFile("1.txt",TEncoding::UTF8); вот так-вид кракозябр меняется
  7. Пробовал-тогда сервер вообще не отвечает с TEncodingтоже пробовал -не помогло-неужели нет ничего стандартного?
  8. Всем приятного времени суток-столкнулся собственно с проблемой при загрузке файла на сервер ответ выдается в кодировке ISO-8859-1, которая в программе естественно не воспринимается. TStringList *SL2= new TStringList; SL2->Clear(); OpenDialog1->Execute(); TIdMultiPartFormDataStream *PostFile= new TIdMultiPartFormDataStream; PostFile->Clear(); PostFile->AddFormField("FileName",ExtractFileName(OpenDialog1->FileName)); PostFile->AddFile("Filedata",OpenDialog1->FileName); PostFile->AddFormField("Upload","Submit Query"); SL2->Text=HTTP1->Post("http://...", PostFile); Memo1->Text=SL2->Text; PostFile->Free(); SL2->Free(); HTTP1->Request->ContentType="application/x-www-form-urlencoded"; Отсюда два вопроса: есть ли возможность штатными средствами перекодировать ISO-8859-1 в UTF-8, или как-то изменить кодировку HTTP1->Request->ContentType="multipart/form-data; boundary= --"; запрос веб-браузера Запрос IdHTTP Пример ответа сервера Можно конечно сделать запрос на онлайн сервис - но как -то это
  9. Выдавал клиент, но спасибо krapotkin -натолкнул на мысль что компоненты IdTCPClient и IdTCPServer тут не причем и искать дальше. Нашел компонент - IdHTTP - который действительно неправильно формировал запрос. А так компоненты IdTCPClient и IdTCPServer полностью адекватно друг с другом связываются. Так что тема закрыта.
  10. Вопрос заключается в следующем - есть сервер сделанный в VCL Server1->DefaultPort=6590 void __fastcall TForm3::Server1Execute(TIdContext *AContext) // на запрос от клиента { TIdIOHandler *a = AContext->Connection->IOHandler; UnicodeString res = a->ReadLn(IndyUTF8Encoding(true)); if (res == "zapros") { if (ListBox1->Items->Strings[0]!="") { a->WriteLn(ListBox1->Items->Strings[0],IndyUTF8Encoding(true)); a->WriteLn(ListBox3->Items->Strings[0],IndyUTF8Encoding(true)); ListBox2->Items->Add("("+AContext->Connection->Socket->Binding->IP+")"+ListBox1->Items->Strings[0]); } есть клиент написанный на vcl //порт указан вручную Client1->Host =Edit2->Text; if (Client1->Connected()==false) { try { Client1->Connect(); } catch(...) { ShowMessage("Не удалось подключиться"); } } TIdIOHandler *a = Client1->IOHandler; a->WriteLn("zapros",enUTF8); Edit1->Text=a->ReadLn(enUTF8); Edit5->Text=a->ReadLn(enUTF8); a->Free(); } рабочий, захотел переложить его на FMX: Client1->Port=6590; Client1->Host=Edit1->Text; if (Client1->Connected()==false) { try { Client1->Connect(); } catch(...) { Client1->Socket->Close(); ShowMessage("Не удалось подключиться"); } } TIdIOHandler *a = Client1->IOHandler; a->WriteLn("zapros",IndyUTF8Encoding(true)); Edit3->Text=a->ReadLn(IndyUTF8Encoding(true)); Edit5->Text=a->ReadLn(IndyUTF8Encoding(true)); Client1->Socket->Close(); a->Free(); } выдает ошибку Может подскажет кто-как их помирить? (Сервер переписывать не вариант )
  11. Вопрос решен! Всем спасибо за советы. Конечный кусок кода прилагаю-вдруг кому пригодится. String Page; Form1->Page=IdHTTP1->Get("http://minfin.com.ua/currency/mb/"); Page.Delete0(0,Page.Pos0("<td class=\"active\">")+20); Memo1->Text=Page.SubString0(0,Page.Pos0("<")-1);
  12. День добрый! Ситуация такова: 1. Загружаю вебстраничку в AnsiString - тут все отлично работает как на винде так и под андроид; 2. Пытаюсь ее отпарсить с использованием стандартных методов AnsiString- .Pos(), .SubString(), .Delete(), - на винде все работает - на андроиде -нет. Вопрос в следующем - чем работать на с текстом - чтобы одинаково работало под андроидом?
×
×
  • Создать...