Перейти к содержанию

Вопросы

День добрый!

Ситуация такова:

1. Загружаю вебстраничку в AnsiString - тут все отлично работает как на винде так и под андроид;

2. Пытаюсь ее отпарсить с использованием стандартных методов AnsiString- .Pos(), .SubString(), .Delete(), - на винде все работает - на андроиде -нет.

 Вопрос в следующем - чем работать на с текстом - чтобы одинаково работало под андроидом?

 

 Form2->Page=IdHTTP1->Get("http://minfin.com.ua/currency/mb/");

 Page.Delete(1,Page.Pos("<td  class=\"active\">")+19);
 Memo1->Text=Page.SubString(1,Page.Pos("<")-1);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

Windowse нумерация индексов String а начинается 1, а в андроиде с 0. Может поможет.

Наверно нужно изменит так:

 Page.Delete(0,Page.Pos("<td  class=\"active\">")+18);
 Memo1->Text=Page.SubString(0,Page.Pos("<")-2);
А так незнаю.
Просто сами учтите что в андроиде индексация начинается с 0.
Отредактировал Axbor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

При работе с текстами на разных языках, есть несколько правил в зависимости от того, что Вам нужно:

1. Пользуйтесь string 

2. Используйте функции AnsiToUTF8, UTF8ToAnsi

3. Используйте кодировку UTF8 в текстовых файлах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

Windowse нумерация индексов String а начинается 1, а в андроиде с 0. Может поможет.

Наверно нужно изменит так:

 Page.Delete(0,Page.Pos("<td  class=\"active\">")+18);
 Memo1->Text=Page.SubString(0,Page.Pos("<")-2);
А так незнаю.
Просто сами учтите что в андроиде индексация начинается с 0.

 

для System.Delete нужно использовать 1, а не 0

неважно на какой платформе это будет работать

Отредактировал ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

При работе с текстами на разных языках, есть несколько правил в зависимости от того, что Вам нужно:

1. Пользуйтесь string 

2. Используйте функции AnsiToUTF8, UTF8ToAnsi

3. Используйте кодировку UTF8 в текстовых файлах.

использовать нужно класс TEncoding и не прибегать к таким функциям как в пункте 2

/// //////////////////////////////////////////////////////////////////
function myUTF8ToString(aStr: String): string;
// uses System.NetEncoding
var
  Data: TEncoding;
  StrArray: TBytes;
begin
  Data := TEncoding.Create;
  try
    try
      StrArray := BytesOf(aStr);
      Result := StringOf(Data.Convert(Data.UTF8, TEncoding.Default, StrArray));
    except
      Result := aStr;
    end;
  finally
    FreeAndNil(Data);
  end;
end;
/// //////////////////////////////////////////////////////////////////

function myStringToUTF8(aStr: String): string;
// uses System.NetEncoding
var
  Data: TEncoding;
  StrArray: TBytes;
begin
  Data := TEncoding.Create;
  try
    try
      StrArray := BytesOf(aStr);
      Result := StringOf(Data.Convert(Data.Default, TEncoding.UTF8, StrArray));
    except
      Result := aStr;
    end;
  finally
    FreeAndNil(Data);
  end;
end;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вопрос решен!

Всем спасибо за советы.

Конечный кусок кода прилагаю-вдруг кому пригодится.

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);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Sati
      Кто может помочь определить фактический размер экрана на Андроид устройсвах без аппаратных кнопок в обработчике onCreate? Screen уменьшает размер на высоту панели навигации.
    • От Женя
      В визуал студии в Xamarin есть такой класс -Java.Security.KeyStore Class, этот класс(как я понял) отвечает за подключение к хранилищу ключей  андроида,короче говоря Android keystore system .
      А вот как  достучаться до этой функции  в с++builder ?Я хочу сделать привязку  приложения  через  Android keystore system ,а как это сделать в Rad  студии не знаю
    • От the BestJVS
      Добрый день, у меня такой вопрос: как сделать автоматическое масштабирование компонентов под любое разрешение с сохранением пропорций на андроиде? Уже много искал по этому поводу, align=scale не работает, TscaledLayout аналогично, для каждого компонента прописывать scaled.x и scaled.y проблематично. Я новичок, прошу вашей помощи
    • От giveaway
      Формирую документ для печати и хочу в него добавить программно некий текст, фигуры и изображение. Вот кусок кода:
      TRectF RectF(10, 10, 30, 30); BitmapTmp->Canvas->DrawRect(RectF, 0, 0, AllCorners, 100); BitmapTmp->Canvas->FillText(RectF, ImageSel->Name, false, 1, TFillTextFlags() << TFillTextFlag::RightToLeft, // TFillTextFlags(), TTextAlign::Center, TTextAlign::Center); Прямоугольник отрисовывается нормально, а текст не отображается. Что я делаю не так?
    • От Сергей Сергеев
      Привет! Как сделать "бегущую строку" в TLabel  или TEdit - длинный текст, если не влазит в отведенное место по ширине, то авто скролл горизонтальный..
      пробовал через добавление TFloatAnimation в CustomStyle к свойству Text, изменяя position - ничего не происходит, пробовал Font.Size  менять ( для проверки - а вообще оно работает?) тоже ничего не происходило.
      Запускаю в Win, а нужно  вообще для Androiod и Ios.
       
    • От nassl
      Нужна помощь!
      Все перепробовал, не выходит каменный цветок...
      На форме лежит скрытый компонент THUETrackBar.
      Хочется реализовать следующий функционал на с++ (fmx): свайп вверх по любому месту экрана - делает компонент THUETrackBar видимым, и двигает его ползунок вверх, свайп  вниз - соответственно вниз.
      этот код не фурычит в процессе свайпа, только по завершении
       
      void __fastcall TForm1::windGesture(TObject *Sender, const TGestureEventInfo &EventInfo, bool &Handled) { switch (EventInfo.GestureID) { case sgiUp: TmpBar->Visible=true; TmpBar->Value++; break; case sgiDown: TmpBar->Visible=true; TmpBar->Value--; break; case igiLongTap: TmpBar->Visible=true;Location_x=EventInfo.Location.x; break; } } Хотел использовать свойство EventInfo.Location.x, но значение меняется только по окончании свайпа. 
       
       
    • От Денис Демин
      Здравствуйте, есть такая задача:
      1) Необходимо вставить карту от Яндекса на форму.
      2) Необходимо вставить информацию текстовую (информация о доставке или оплате), это можно также вставить HTML кодом, а лучше просто отформатированным содержанием. 
      Заранее спасибо всем за ответы.
    • От Farhodjon
      Привет всем, я здес новинки. Нужна ваша помош как подклучит служба на delphi xe8 исзодник или видеоурок на delphi xe8 есть? Помагите пожвлуста очен надв мне это подклучени
    • От Евгений Гайдук
      Помогите решить проблему. Есть андроид-планшет, есть серверный ПК. Нужно данные, вводимые на планшете сохранить в сетевую папку на сервере. Может есть возможность подключить сетевой ресурс на андроид планшете, либо напрямую сохранять в сетевую папку.
    • От Вячеслав Холод
      Проблема такая, создаю динамически Label и нужно выровнять текст внутри по центру самой метки. 
      Пробовал: 
          with LabelG do
          begin
            StyledSettings := [];
            LabelG.TextSettings.Font.Family:='Century Gothic';
            LabelG.TextSettings.Font.Size:=14;
            LabelG.TextSettings.FontColor:=TAlphaColorRec.Aliceblue;
       -->  LabelG.TextSettings.HorzAlign.taCenter; (И :=taCenter и что только не пробовал)
          end;
       
      Помогите пожалуйста.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...