Вверх ↑
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
#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)])
}

карма: 4

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

0
Ответов: 537
Рейтинг: 14
#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
карма: 4

0
Ответов: 4612
Рейтинг: 746
#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
карма: 26

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

0
Ответов: 537
Рейтинг: 14
#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 проигрывает, а регулярное выражение, это ведь это так красиво и то что приходит первое на ум.
карма: 4

0
Ответов: 537
Рейтинг: 14
#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
карма: 4

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

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

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

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

0
Ответов: 537
Рейтинг: 14
#10: 2019-08-25 17:25:16 ЛС | профиль | цитата
Установил WIN7 на виртуальную машину, поставил язык системы ирит, местоположение Израиль, Hiasm стал полностью на иврите
1.jpg
Винда почему то все равно на русском, все равно Hiasm не понимает ирит, шрифты и компоненты менял, проверял. Сделал тестовую программу, она открывает сохраненную html страницу и вырезает текст и ссылки и в место текста на иврите вот что получается
2.jpg
Может нужно виндовс установить полностью на ирите, или еще что то сделать.
карма: 4

0
Ответов: 4612
Рейтинг: 746
#11: 2019-08-26 10:38:51 ЛС | профиль | цитата
Sersey писал(а):
Винда почему то все равно на русском
Так и должно быть. Язык интерфейса системы и языки ввода не связаны между собой.
Sersey писал(а):
она открывает сохраненную html страницу и вырезает текст и ссылки и в место текста на иврите вот что получается
1) Получилось вводить текст на иврите в окна программы, созданной в HiAsm?
2) "Текст на иврите" в "сохраненной странице" в какой кодировке находится? Ты выполняешь преобразование из этой кодировки при загрузке страницы в программу? Страница в браузере отображается корректно?
карма: 26

0
Ответов: 537
Рейтинг: 14
#12: 2019-08-26 10:44:36 ЛС | профиль | цитата
1) Получается вводить
2) Никаких преобразований не выполняю. В браузере и любом текстовике Windows иврит отображается нормально. Я даже Windows 7 установил полностью на иврите, ничего не изменилось, такие же значки показывает
карма: 4

0
Ответов: 4612
Рейтинг: 746
#13: 2019-08-26 11:14:59 ЛС | профиль | цитата
Sersey писал(а):
В браузере и любом текстовике Windows иврит отображается нормально.
Раз
Sersey писал(а):
1) Получается вводить
, значит, и в программе "отображается".
Проблема в
Sersey писал(а):
Никаких преобразований не выполняю
- "браузер и любой текстовик Windows" выполняют преобразование. Потому что на веб-страницах текст обычно находится в кодировке UTF-8. При загрузке в своей программе его надо преобразовать (компонент Charset, Mode=UTF8_ANSI)

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

1
Голосовали:Sersey
Ответов: 537
Рейтинг: 14
#14: 2019-08-26 12:17:00 ЛС | профиль | цитата
Благодарю за помощь в понимании кодировок, все получилось. Почему то + не могу поставить, нажимаю палец вверх, а получается палец вниз и пишут комментарий обязателен.
карма: 4

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