|
|
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
ДокУ него грид кракозябры, вероятнее всего, отображаетА как должен? hex-коды? Это бинарный блоб. А если ты туда exe файл засунешь, что он должен отобразить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2019, 16:57 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Док, Тоже самое у меня если достучаться до бд из IBExpert. Здесь все правильно. (см. скрин) Проблема при доступе через Delphi : 1) бинарный блоб ================== Если файл в кодировке utf и сохраняю прямо в бд, то в бинарном блобе текст отображается так что если выводить в мемо, текст нечитабельный. А если файл в кодировке utf_BOM тогда в бинарном блобе правильно сохраняется(как ansi иероглифы) и следовательно и в мемо нормально отображается. 2) текстовый блоб ================== не имеет значения кодировка utf или utf-BOM в текстовом блобе в обоих случаях сохраняются китайские иероглифы. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. https://onedrive.live.com/?id=29624722F45C06E9!102428&cid=29624722F45C06E9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2019, 18:58 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Если текстовый файл закодирован как "unicode"(noteped) или ucs-2 LE BOM (noteped++) тогда исчезают китаиские иероглифы и файл правильно сохраняется в текстовый блоб. Аналогично, в случае бинарного блоба если файл в utf-BOM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2019, 21:58 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Это бинарный блоб. А если ты туда exe файл засунешь, что он должен отобразить? То, что ты туда засунул. Тебя не смущает, что символы первых 127 символов ASCII (совпадающие с юникодом) отображаются корректно? bastibubuЕсли файл в кодировке utf и сохраняю прямо в бд, то в бинарном блобе текст отображается так что если выводить в мемо, текст нечитабельный. А ты уверен, что твой мемо корректно читает UTF8 без BOM? ЕМНИП, в дельфях есть функции, которые позволяют "угадать" кодировку текста (в Лазаре они есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2019, 23:01 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
ДокА ты уверен, что твой мемо корректно читает UTF8 без BOM? Док, спорить с тобой не могу, не исклучаю что так и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 00:41 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Хотя вряд ли. Тот же самый результат когда файл открываю в RichEdit. Utf8-BOM, Unicode, Unicode Big Endians правильно отображаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 01:01 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
то же самое в случае Jedi(jvMemo). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 01:53 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
bastibubuХотя вряд ли. Да неужели? :) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Не думаю, что в дельфях поведение сильно отличается от Лазаря ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:05 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Док, A как блоб-данные у вас оказались в бд? Через IBExpert? Если да так и у меня все в порядке. Проблема когда компонентами Delphi . Смотрите. В бюджетном Noteped-е есть кодировки: utf-8, Unicode, Unicode big endian, а в Noteped++: utf8, utf8-BOM, ucs2 BE BOM, ucs 2 LE BOM. Создавал файлы в noteped и когда смотрю encoding в Nooteped++ там видно что для созданного в noteped utf файла noteped++ показывает кодировку utf-BOM. Есть и другие соответствия такого вида: noteped noteped++utf8 utf8-BOMUnicode ucs-2 LE BOMUnicode big endian ucs-2 BE BOMнет соответствия utf8 Я создавал файл в notepad++ как utf8. А это как раз есть utf8 без BOM. А utf8 без BOM в hex не имеет маркера как ascii и трудно отличить их друг от друга. Вчера создал 3 файла в noteped: utf8, Unicode, Unicode big endianб сохранял в блобе и в "Firebird Maestro Professional" наблюдал как выглядят в hex(см. скрин). Где то здесь скрывается причина. Может быть Delphi считает файл без BOM как Ansi и поэтому теряется текст кроме английского. Сейчас файлы храню как unicode notepad или ucs-2 LE BOM noteped++ и правильно сохраняются в обоих блобах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 16:54 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Док , вы можете создать файл в кодировке utf-8 не в простом noteped-а а в noteped++ и сохранить в блобах. Интересно что скажет Lazarus. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 17:04 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
bastibubu, могу, но это будет после 20.00 Мск, когда я домой приду. Все utf8-ные файлы я создавал в Notepad ++, данные в БД грузил скриптом в IBE. В приведенном выше посте для чтения данных пользовал IBX для лазаруса. Но, думается, содержимое бинарного блоба не зависит от того, чем в него пишешь. Для чистоты эксперимента надо запускать этот тест на дельфях. Ладно, руки дойдут, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 17:53 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
В общем, все оказалось, как и подозревал. У Лазаря в редакторе кодовая страница под умолчанию UTF8, у дельфей - win1251. Как только применил перекодировку из юникода в анси, все встало на свои места код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. зы. вставку не пробовал, времени нет. Если будет интересно, проект со скриптами базы прилагаю, можешь чуть доработать напильником (из доп.компонентов EhLib и FIBPlus) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 00:00 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Док , большое спасибо вам! Буду еще тестировать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 02:04 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
bastibubuБуду еще тестировать. :) имей ввиду, что при вставке, возможно , надо будет применять обратную перекодировку AnsiToUtf8, чтобы компоненты доступа "правильно" писали данные в базу. Хотя в мануалах к FB пишется, что данные "перекодируются на лету". :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 08:16 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Докнадо будет применять обратную перекодировку AnsiToUtf8 я имел ввиду бинарный блоб, текстовый блоб имеет явное указание на кодировку, потому с ним проблем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 08:22 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Док_Vasilisk_Это бинарный блоб. А если ты туда exe файл засунешь, что он должен отобразить?То, что ты туда засунул. Тебя не смущает, что символы первых 127 символов ASCII (совпадающие с юникодом) отображаются корректно?Нет. Мне вообще достаточно надписи (BLOB) и вкладки AsHex. Что там смотреть? Это бинарные нечитаемые данные. Точка. bastibubu1) бинарный блоб ================== Если файл в кодировке utf и сохраняю прямо в бд, то в бинарном блобе текст отображается так что если выводить в мемо, текст нечитабельный.Вот же ж вы настырный. Какое слово из этого _Vasilisk_Файл бинарный? Используйте BLOB BINARY и Load/SaveStream Файл текстовый? Используйте BLOB TEXT и AsString.вам не понятно? Или хочецца? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 16:36 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Файл бинарный? Используйте BLOB BINARY и Load/SaveStream Файл текстовый? Используйте BLOB TEXT и AsString. _Vasilisk_ , почему вы думаете что и так не делаю? Но не работает. Настырность не при чём. По моему, вы не поняли проблему: Если файл сохраняю в кодировке utf8(то есть without BOM) в noteped++ и открываю в мемо текст нечитабельный а если сохраняю в кодировке utf8-BOM, ucs-2 BE BOM, ucs-2 LE BOM) тогда никакие китайские иероглифы не выводит. Код: pascal 1. 2. 3. 4. 5. Создайте файл в noteped++ как в кодировке utf8 (без BOM), запишите там 'Hello Привет ' или что-нибудь и открывайте в мемо. Думаю получите тот же результат. P.S. Простой noteped не подойдет. Там нет utf8 without BOM. Там есть только utf8-BOM. P.P.S. Unicode (noteped)=ucs-2 BE BOM(Noteped++) работают как часы- правильно загружает текст в обоих блобах, и в мемо, и из мемо в блобах и из блобы в мемо/richedit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 18:26 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Что там смотреть? Это бинарные нечитаемые данные. Точка. да расслабься уже, выходные жеж :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 19:00 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
bastibubuСоздайте файл в noteped++ как в кодировке utf8 (без BOM), запишите там 'Hello Привет ' или что-нибудь и открывайте в мемо. Думаю получите тот же результат. Все правильно. Без BOM как мемо, по-твоему, должен догадаться, что ему скармливают именно utf8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 10:25 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Василий 2Все правильно. Без BOM как мемо, по-твоему, должен догадаться, что ему скармливают именно utf8? Это как раз не трудно. У UTF-8 жесткая структура, так что просто попробовать текст как UTF-8, а если не получится (т.е. если текст не является UTF-8) - пробовать уже другие кодировки. Вот UTF-16 от MBCS - уже отличать можно только эвристикой-статистикой, но пока примитивной. А разные MBCS друг от друга - так и вообще.... Забавно, что в целом ему это уже объясняли. https://stackoverflow.com/questions/54659936/how-to-write-txt-file-in-blob ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 13:00 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
for the record Stack Overflow I get a Google Drive permissions error when I try to follow your link. Anyway, do you get the same result with text saved to a Char field? @MartynA, thank you for you answer. I create char(1000) field with utf encoding and then write text from memo in this field. Code is: ms : TMemoryStream; begin ms := TMemoryStream.Create; try memo1.lines.savetostream(ms, TEncoding.UTF8); ms.position := 0; Query1.Edit; Query1.FieldByName('CHAR1').AsString :=memo1.Lines.Text; Query1.Post; As a result: Text with georgian characters is saved succesfully. "DB has utf-encoding." that is not how Firebird works. Each column of a character type has its own character set, the default character set only specifies the character set to apply when a column is created without a character set clause, and the default character set doesn't apply retroactively. The problem could be that the column has the wrong character set (or none). The problem could also be indicative of using character set NONE as the connection character set instead of explicitly connecting with a connection character set (UTF8 would probably be the best choice given the data) Note that blobs are even more problematic especially when using text data in binary blobs and then trying to show them as text. I don't do Delphi myself, but I seem to recall Delphi uses UTF-16 by default, which may introduce another chance for conversion errors. @MarkRotteveel, everywhere and everytime I use only utf encoding. Connection character set also is utf. Text blob field is created with utf. I delete it and recreate but nothing changes. I add Project and db files in my post above. @MartynA, I edit my onedrive cloud permission. Now you are able download project and db files. Not knowing Delphi, I can't really help you further, but to me a TFileStream suggests it reads binary, not text. Are you sure that is the proper course of action here? I do not have Delphi 10.x nor do I have any older AnyDAC/FireDAC library with me, however.... program MyInfoRepository1; uses Vcl.Forms, uMain in 'D:\MyInfoRepository\uMain.pas' {fMain}; - there are two problems with your ZIP: 1) you do not put your main form sources into it, and 2) the very fact that DPR lists absolute file name instead of relative means that your form sources lie outside of your main project file. Sometimes it is intended, but in your case you clearly is dizzy about Delphi programs structure. So, I am ATM skeptical about ur claim Connection character set also is utf. Perhaps you can put the texts of your forms - both .pas source texrt and .dfm source text - onto some service like Pastebin.com, or github.com @MarkRotteveel TFileStream is a stream that reads files. How it's interpreted, as raw bytes or as text or whatever else, is an unrelated concern. @basti also if you can work with TMemoryStream then perhaps you look for TBlobSteam or TField.CreateBlobStream or something of that kind, that your database-connecting library provides. @Arioch'The, I update my onedrive folder. I simplify project and when I save with new name(save project as...) I forgotten create forms in it. :) As for being skeptical about my claim that Connection character set is utf. I update post and add image. please see. did you try other firebird connection libraries? dbExpress, Unified Interbase, Interbase Express? Will they work differently w.r.t blob ? Notepad's UNICODE is WindowsNT Unicode, which used to be UCS-2 in older NT versions and which is UTF16 now ( no a "core" subset USC-2 and UTF16 are the same). So your rightmost screenshot shows almost the same text file data, just with or without BOM Query1.Params[0].AsStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead); - what happens here is TWO operations. 1) you create a binary (not-text) stream out of text file. 2) you push this binary (not-text) stream into blob. When you read files by Default Delphi uses "platform-specific" charset, which for Windows and Delphi2009+ is "WideChar" = UTF16. Then you push the charset-less non-text data into the blob parameter, so no conversion is possible. // try to think along TFile.ReadAllText(const Path: string; const Encoding: TEncoding) and maybe TFile.OpenText your param type should be text blob, that is ftMemo - check these and compare wit hyour SELECT columns: docwiki.embarcadero.com/Libraries/Seattle/en/… docwiki.embarcadero.com/Libraries/Seattle/en/… docwiki.embarcadero.com/Libraries/Seattle/en/Data.DB.TMemoField also check value and description of TMemoField.Transliterate So, as of now, I can see two obvious ways to put the text file into the blob field. First one makes double conversion UTF-8 -> UTF-16(UCS2) -> UTF-8. But doing so it implicitly makes data sanity checking on client. Second one would try to just push the data into the database bypassing checks. If you would try to do it with the malformed (non-UTF-8) file - results would differ. Also, Delphi's TEncoding class is weird beast, try to use TEncoding.UTF8 = TUTF8Encoding.Create object to convert non-UTF-8 (malformed) data to string,AFAIR it would return empty string instead of raising Exception Also, in general I think a special explicit UPDATE OR INSERT SQL statement with using parameters is more safe and debugging-friendly than using implicit SELECT with Query1.Edit, YMMV. Then you can {TMemoField/TParam} . {AsString/AsWideString} := TFile.ReadAllText('myUTF8text.txt', TEncoding.UTF8); for double-conversion and {TMemoField/TParam} . AsBytes := TFile.ReadAllBytes('myUTF8text.txt'); bypassing checks (in particular, if future database versions would change the collation of the blob-text column the direct bypassing insertion maybe would not detect it, not sure). As of Delphi XE2 though there is a bug in TFile that prevents it reading read-only files (like ones on CD-ROM media, or r/o ACL grants, or r/o file attribute), as even TFile.ReadXXXX methods try to open file for read-write access instead, like default Pascal reset procedure did. I outlined the potential future problems I can see, so check them proactively @Arioch'The thank you for you attempt to help me. I will carefully read you comments. Today I realise some aspects: When I create txt-file in noteped++ in utf encoding it is utf without BOM. utf in noteped and utf in noteped++ arent the same. utf in noteped is equivalent to utf wirh BOM in noteped++. You may create file in noteped as utf and then open in noteped++ and see encoding in menu. When I create txt-file in noteped++ not in simple utf encoding but in ucs-2 BE BOM or ucs-2 LE BOM they are saved in blobs correctly(both are 16-bite utfs). Maybe it is because it's difficult for delphi distinguish utf without BOM from Ansi. Both are without markers. You may see image from hex, I put it on onedrive, in my project folder. onedrive.live.com/… utf encoding - no such thing. There is UTF-7, UTf-8, UTF-16. UTF-32 and maybe more. They are different. Then, UTF-8 (and perhaps UTF-7) are independent on "byte order" (google "big endian" or "intel/Motorola endian") while those >8 UTFs are dependent in proper bytestream aggregation, so they usually use BOM (byte-order marker), to make parser learn byte order of the generator, however it is not required, but a good habit to put it when passing texts across architectures, still a habit not requirement. UTF <= 8 don't need BOM, while it is allowed. BOM is just "invisible letter", one of. UTF-nn is still UTF-nn with or without BOM. It is just a special letter. Text encoding does not change if you add or remove some letter. UCS2 (old Windows Unicode) is subset of UTF-16 (today Windows Unicode). Every UCS2 text is UTF-16, just like every ASCII7 text is UTF-8. Delphi's WideString is by definition Windows Unicode (it is COM B_STR datatype), UnicodeString is not B_STR but is Windows Unicode too. C# and Java strings are UTF-16. So, when you loose charset information and do plain bytes transfer - UTF-16 interpretation is what you probably would receive, by default. BOM letter then MIGHT trigger reconsideration, if some Delphi library would do a fool-proofness check. But that is not granted. To be on safe side you should keep strings (texts) as strings and never switch to bytes, then you might blame libraries if they screw charset information. Alternatively, you can bypass libraries and work with bytes directly, then it would be your responsibility to track and check all the charsets through all the chain and to transcode where needed. When you did ftBlob and LoadFromFile you talked in bytes-not-letters terms. When you use select and db-aware grid you talk in letters-not-bytes terms. In between there can be mismatches. Now, your database have it as text blob, the letters-not-bytes principle, then the mismatch is (least library bugs) when you pushing the data into the database, on the update or insert statement part for example. And in that step you have to decide you either would work with letter or with bytes, you either would delegate charset tracking and transcoding to libraries or do it yourself and preclude libraries. And those approaches I outlined above in .AsWideString := ... and .AsBytes := ... snippets UTF-16 interpretation is what you probably would receive, by default - in Delphi 2009+, I mean. Delphi 2007 and prior, and libraries written back then, would rather default to 8-bits MBCS ("ANSI") interpretation of the very same binary data, if you convert bytes to text. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 13:04 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Василий 2Без BOM как мемо, по-твоему, должен догадаться, что ему скармливают именно utf8? а что, в дельфях разве нет функции для "автоэнкодинга"? В лазаре аж три перегруженные функции LoadFromFile (я привел одну из них выше). Наверняка в Дельфях есть то же самое (увы, последняя версия, где я что-то наваял, была XE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 15:02 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
ДокВ лазаре аж три перегруженные функции LoadFromFile (я привел одну из них выше). Наверняка в Дельфях есть то же самое (увы, последняя версия, где я что-то наваял, была XE) Именно "авто"? Нету. И в FPC, насколько я вижу по сорцам, тоже нету. Просто там UTF-8 - родная для string, вот она и подставляется дефолтом. А попробуй выставить какой-то там дефайн для отключения UTF-8 в качестве родной, и все, приплыли. AriochЭто как раз не трудно. У UTF-8 жесткая структура, так что просто попробовать текст как UTF-8, а если не получится (т.е. если текст не является UTF-8) - пробовать уже другие кодировки. Эм, ну ок Код: sql 1. - корректный UTF-8. И что с ним дальше делать? Можно определить некоторые случаи, когда текст НЕ в UTF-8. Но это лишь подмножество из возможного количества вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2019, 17:19 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
Василий 2Именно "авто"? Нету. И в FPC, насколько я вижу по сорцам, тоже нету. Просто там UTF-8 - родная для string, вот она и подставляется дефолтом. А попробуй выставить какой-то там дефайн для отключения UTF-8 в качестве родной, и все, приплыли. Ты прав. Волшебной функции нету, но есть модуль LConvEncoding с волшебной функцией GuessEncoding :) На скорую руку набросал: код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2019, 01:10 |
|
||
|
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
|
|||
|---|---|---|---|
|
#18+
справедливости ради замечу, что на fpc 3.0.4 не взлетит (LoadFromFile/LoadFromStream еще не имеют перегруженных аналогов), только хардкор транк :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2019, 09:24 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39775974&tid=2039795]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 471ms |

| 0 / 0 |
