Вверх ↑
Этот топик читают: Гость
Ответов: 312
Рейтинг: 5
#1: 2019-08-07 08:22:26 ЛС | профиль | цитата
Нужно сохранять и загружать текст на трех языках одновременно, это русский, английский и иврит. Проблема в том, что загружается иврит и русский нормально если вручную сохранить в блокноте файл в кодировке UTF-8, но если в программе написать на иврите, а потом сохранить, то все буквы превращаются в вопросительные знаки. Как сохранить файл в кодировке UTF-8?

Add(MainForm,2953706,28,105)
{
Height=491
}
Add(RichEdit,2378344,175,105)
{
Width=384
Height=453
Align=5
Font=[@Arial Unicode MS,8,0,0,177]
FileName="1.txt"
Strings=#5:Текст|4:Text|
Point(FileName)
Point(doLoad)
Point(doSave)
}
Add(Button,6936346,105,126)
{
Left=5
Top=425
Caption="Load"
link(onClick,2378344:doLoad,[])
}
Add(Button,11292725,105,168)
{
Left=65
Top=425
Caption="Save"
link(onClick,2378344:doSave,[(156,174)(156,139)])
}

карма: 2

0
vip
#1.1контекстная реклама от партнеров
Ответов: 3930
Рейтинг: 620
#2: 2019-08-07 13:12:11 ЛС | профиль | цитата
Для этого требуется использование пакетом Unicode версий оконных элементов и Windows API. И соответствующий компилятор. Реализовано здесь: /topic/61538
карма: 19

0
Ответов: 312
Рейтинг: 5
#3: 2019-08-08 19:25:03 ЛС | профиль | цитата
Как загрузить из интернета страницу содержащую текст на русском и иврите в программу используя HTTP_Get? Нужно загрузить страницу, программно найти текст на иврите в загруженном из интернета тексте и сохранить его. Проблема в том, что после загрузки страницы получаю текст символами и в Unicode пакете тоже. Если использовать вместо HTTP_Get - HTTPClient, то в Unicode пакете не компилируется программа под любыми компиляторами, если компилировать в Delphi, то получаю ошибку hiHTTPClient.pas(837) Error: Undeclared identifier: 'CodePage1ToCodePage2'
Add(MainForm,2953706,56,196)
{
}
Add(RichEdit,13426251,252,196)
{
Left=20
Top=50
Width=785
Height=435
ScrollBars=2
}
Add(Edit,16271115,203,84)
{
Left=95
Top=15
Width=710
Text="https://www.facebook.com/grisha.fainberg"
}
Add(Button,16737238,112,196)
{
Left=20
Top=15
Caption="GET"
link(onClick,6510574:doEvent1,[])
}
Add(CookieManager,13703496,217,147)
{
Name="cook"
Point(doGetIECookies)
Point(onGetIECookies)
Point(Filename)
link(URL,3936536:Text,[])
}
Add(VisualStrings,3936536,224,119)
{
Lines=#23:https://m.facebook.com/|
}
Add(HTTP_Get,2624368,203,266)
{
UserAgent="Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0"
Point(Headers)
link(onDownload,3977081:doConvert,[])
}
Add(StreamConvertor,3977081,252,273)
{
Mode=6
}
Add(Charset,13301068,252,315)
{
Type=7
Point(doCharset)
}
Add(HTTPClient,3079135,203,203)
{
Point(Headers)
link(URL,16271115:Text,[])
link(onFinish,13426251:doText,[])
link(Headers,13703496:Cookies,[])
}
Add(Hub,6510574,161,196)
{
link(onEvent1,13703496:doGetIECookies,[(196,202)(196,181)])
link(onEvent2,3079135:doLoadString,[])
}

Вот такая схема не компилируется с пакетом Unicode

Редактировалось 1 раз(а), последний 2019-08-08 19:33:12
карма: 2

0
Ответов: 3930
Рейтинг: 620
#4: 2019-08-09 13:26:34 ЛС | профиль | цитата
Sersey писал(а):
Проблема в том, что после загрузки страницы получаю текст символами и в Unicode пакете тоже
Какими "символами"? "Крякозябрами", "квадратиками", вопросительными знаками? В пакете нужно выбрать компилятор FPC-32U (юникодный). Не уверен в работоспособности HTTP_Get, но попробуй результат загрузки прогнать через Charset (Mode=UTF8->Str).
Sersey писал(а):
Если использовать вместо HTTP_Get - HTTPClient
Unicode-пакет - это полная переработка стандартного пакета. Сторонние компоненты (как HTTPClient) тоже требуют доработки, но не дорабатывались.

Редактировалось 3 раз(а), последний 2019-08-09 13:35:15
карма: 19

0
Ответов: 312
Рейтинг: 5
#5: 2019-08-14 18:17:34 ЛС | профиль | цитата
А если я установлю систему на иврите, сможет стандартный пакет с Delphi компилятором работать с латинскими и ивритскими буквами одновременно?
карма: 2

0
Ответов: 312
Рейтинг: 5
#6: 2019-08-14 23:50:56 ЛС | профиль | цитата
Друг с Израиля попросил сделать программу, у него не пишутся русские буквы в Memo, заменил на RichEdit, шрифт по умолчанию, так там и на русском пишется и иврит, но, это у меня русской винде, если сохранить и открыть, то крякозябры. Понятно, по 1 байту на символ, идеально как по мне, значит мы или англичане экономные и круче всех. Я еще много не знаю, но конечно собираюсь учится, если я раньше думал, что Hiasm это самое лучшее, изучив, не так глубоко, нужно дальше идти и потом сам напишу для Хайясма и браузер нормальный и поддержку юникода. Netspirit у вас в пакете совсем не работает компонент "StrMask" но его можно легко заменить "RE_Check".


Читал недавно старый пост, как удалить все html коды с текста, http://forum.hiasm.com/topic/66285 и что интересное, ни кто не вспомнил про наши любимые регулярки

Add(RE_Replace,10572768,735,203)
{
Expression="<.*?>"
}
nesco как обычно оригинален, называется нужно изучать вдумчиво точки компонентов, но по скорости с регуляркой BlockFind проигрывает, а регулярное выражение, это ведь это так красиво и то что приходит первое на ум.
карма: 2

0
Ответов: 312
Рейтинг: 5
#7: 2019-08-15 02:46:02 ЛС | профиль | цитата
Самое галимое в редакторе, это браузер. Скоро ни один сайт не откроется через IE, для своих дел дано нашел браузер, который можно силами Хайясма приуздать, это K-Meleon on Goanna http://kmeleonbrowser.org/forum/read.php?19,148500,page=1 там и коды, всё открыто, если конечно понимаешь. Mozilla 52 версия, сейчас 68. Посмотри на размер браузера, вот они галимо сделали, загружаешь сайт фейсбук, все равно глючно. Но есть блокираторы от переполнения памяти процесса, на других сайтах спасают, а на фейсбук нет, продолжаем листать страницы и уже через примерно 100 страниц, больше 1 Гб оперативы, я видел когда он, процесс, занимал больше 2 Гб, и процесс выделяется как 32 Бит. Это один сайт у которого есть еще и мобильная версия. Непонятно, о чем админы фейсбука думают, и похожих сайтов. Если на моей системе, эта хрень грузится долго, я имею в виду страницу, неужели не понятно, что это отпугивает людей, такие страницы с тысячами скриптов. Не знаю как у вас, а у меня от старта загрузки группы фейсбук длится, около 2 минут. Смотрел в Fiddler, ахринеть, одна страница до 18 Мб доходит, это без прокрутки, просто УРЛ загрузил и умер, это как можно умудрится такое сделать, одна страница текста 15-20 Мб, это какого динозавра надо загрузить с таким объемом данных. Чтобы показать текст и картинку браузеру нужно скачать 15-20 мегабайт на каждую страницу? И это при том, что если страницу вниз прокрутить, то еще МВ добавятся и не хило, что уж говорить про самый, самый полезный и глючный браузер IE.
Можете прокомментировать, ответить и по перовому посту и тут тоже

--- Добавлено в 2019-08-15 02:56:31

Вот взять сайт телеграмм, ну красота же, код легкий, даже для IE. Скажите, что такого может загружаться с фесбука, что весит как контент в 13 доступных сразу при загрузке ссылки, это какую хрень нужно засунуть, чтобы клиент при загрузке страницы через браузер скачивал сколько.

Скачиваем с фейбука слона, возможно динозавра, а может миллион ихних программ в оперативу, для быстрой работы с сайтом. Я сам учил html и бизнес, если страница загружается больше 10 секунд, клиент уходит.

Редактировалось 2 раз(а), последний 2019-08-15 03:06:36
карма: 2

0
Ответов: 3930
Рейтинг: 620
#8: 2019-08-15 10:56:25 ЛС | профиль | цитата
Sersey писал(а):
А если я установлю систему на иврите, сможет стандартный пакет с Delphi компилятором работать с латинскими и ивритскими буквами одновременно?
Не обязательно устанавливать. В любой Windows в Панели управления -> "Язык и стандарты" выбрать вместо русского иврит в параметре "Язык для программ, не поддерживающих Юникод". Перезагрузить систему. Теперь во всех окнах программ HiAsm можно будет вводить текст на иврите и английском (добавить клавиатуру иврита). Но не получится вводить на русском или любом другом. Русский текст в не-юникодных программах будет отображаться "крякозябрами".
Sersey писал(а):
заменил на RichEdit, шрифт по умолчанию, так там и на русском пишется и иврит
Пишется. Но это особенность конкретно RichEdit. Но ты не сможешь обработать в программе введенный туда текст, так как в программе используются однобайтовые строки - при чтении все символы, не входящие в активную "кодовую страницу для программ, не поддерживающих Юникод", будут заменены на знаки вопроса. Юникод-пакет избавляет от такой проблемы.
Sersey писал(а):
у вас в пакете совсем не работает компонент "StrMask"
Не подтверждаю: пример из справки по компоненту работает.

Редактировалось 1 раз(а), последний 2019-08-15 11:23:58
карма: 19

0
Ответов: 312
Рейтинг: 5
#9: 2019-08-15 23:18:54 ЛС | профиль | цитата
Netspirit писал(а):
ожно будет вводить текст на иврите и английском

Нужно чтобы программа находила текст на иврите, т.е. получаю страницу в HTML, парситися , на выходе получаю текст или на английском или на иврите. Например прога нашла слово которое есть в посте, и его нужно пост с ссылкой отправить в телеграмм, самому себе, чтобы получить на мобилке уведомление. Если на своей винде поменяю язык, регион, и вообще все, вот у меня система на иврите? Это даже уже не совсем актуально, сам придумал как с юникод пакетом и компилятором 32U можно отравить сообщение с помощью браузера в телегу самому себе. Но если научите, подскажите, буду благодарен, ведь я пока не волшебник, а только учусь.
карма: 2

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)