|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
|
|||||||||||
RAD XE3+ Консольное приложение зависает при использовании String и TStringList09.06.2020, 22:27. Показов 1209. Ответов 23
Метки нет (Все метки)
Вопрос есть.
uses Classes можно использовать в консольном приложении? пишу консольное приложения для обработки (типа конвертера) бинарных файлов в текстовый Для удобства создал класс
Но не зависает, если закомментировать такие строки как:
Хотел узнать, может я библиотеки некорректно подключаю в uses? (да ну бред!) Или в delphi10 какие-то несовместимости String и/или TstringList? Знаю, что там String=WideString, но не из-за этого же приложуха лажает? дело в том, что портировал код в Delphi 7 - там прекрасно отрабатывает. Но хочется работать с 10-ой Вспомнил, переписывал код на приложение в формой - такие же глюки
0
|
|||||||||||
| 09.06.2020, 22:27 | |
|
Ответы с готовыми решениями:
23
Зависает приложение при использовании Timer
консольное приложение (при запуске приложение открывалось на весь экран) |
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 09.06.2020, 23:32 | ||
|
0
|
||
|
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
|
|
| 10.06.2020, 00:14 | |
|
Отладчик найдёт причину мгновенно.
0
|
|
|
451 / 175 / 31
Регистрация: 04.08.2018
Сообщений: 704
|
||
| 10.06.2020, 00:19 | ||
|
0
|
||
|
Модератор
|
|||||||
| 10.06.2020, 05:52 | |||||||
дописали к значению переменной s Хекс-значение очередного элемента массива. И тут же заменили значение этой переменной другими данными... Зачем было что-то дописывать, если тут же результат заменить?И вот эту красоту с плюсами я бы записал как-то так:
0
|
|||||||
|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
|
|||||||||||||
| 12.06.2020, 18:53 [ТС] | |||||||||||||
0
|
|||||||||||||
|
Модератор
4114 / 2346 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
|
|||
| 13.06.2020, 07:08 | |||
|
0
|
|||
|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
|
|
| 13.06.2020, 10:25 [ТС] | |
|
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 13.06.2020, 11:22 | |
|
Так вы же читаете в два раза больше данных, чем размер структуры. В XE тип Char это 2 байта, а не 1.
ПС: Хотя неправ, вы переделали на AnsiChar. Опубликуйте последний проблемный кусок кода, а то уже непонятно как это выглядит сейчас.
0
|
|
|
|
|
| 13.06.2020, 12:01 | |
|
если rec84 это array of byte
то 1. есть TBytes, зачем вам еще один тип? 2. sizeOf(rec84) === 4 это размер указателя на массив, а не размер массива размер массива length(rec84) 3. чтобы подсказать что-то более осмысленное, лучше знать исходную задачу потому что нет никакой разницы между "бинарными" и "текстовыми" файлами достаточно просто использовать другие классы для работы с файлом...
0
|
|
|
Модератор
4114 / 2346 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
|
|
| 13.06.2020, 17:23 | |
|
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
|
|
| 13.06.2020, 17:28 | |
|
0
|
|
|
Модератор
4114 / 2346 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
|
|
| 13.06.2020, 17:56 | |
|
northener, так у ТС там SizeOf(Char), который зависит от версии delphi.
0
|
|
|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
|
|||||||||||||||||||||||||
| 13.06.2020, 18:48 [ТС] | |||||||||||||||||||||||||
|
Чтобы реализовать такую задачу, я: 1. гружу файл в TMemoryStream 2. прохожусь циклом по нему, ищу байт=132. как только нашел - оправляю запись в массив байтов. 3. обрабатываю массив, вытаскиваю данные 4. перевожу курсор (ms.Position) на конец записи и снова ищу байт=132 и так до последнего байта ms ======================================== ================
?)
Я делаю так:
0
|
|||||||||||||||||||||||||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
|
||||||||
| 13.06.2020, 18:59 | ||||||||
|
Добавлено через 7 минут
1
|
||||||||
| 13.06.2020, 19:02 | ||
|
Не по теме:
0
|
||
|
|
|||
| 13.06.2020, 19:07 | |||
|
1. открываем FS:TFileStream (лучше TBufferedFileStream) repeat 2. считываем по 1 байту пока не наткнулись на $84 3. когда наткнулись, считываем еще один байт - длину L 4. массиву A:TBytes задаем длину L и считываем L байтов в A. После этого разбираем массив until FS.Position>=FS.Size; Добавлено через 2 минуты т.е. почти то же самое только без этих странностей с SizeOf, Position и всего такого я исхожу из того, что длину мы получаем в байтах, потому что иначе неясно, почему массив в байтах а не в Char а если у вас текстовый файл, тогда вряд ли мы кодировали через $84+Len
1
|
|||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 13.06.2020, 19:15 | |
|
У него там уже AnsiChar, а это 1 байт. Я потому и просил опубликовать последний вариант кода.
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
|
|
| 13.06.2020, 19:43 | |
|
Да байты у него.
0
|
|
| 13.06.2020, 19:43 | |
|
Помогаю со студенческими работами здесь
20
Как убрать консольное окно при использовании функции System? Зависает консоль при использовании for Как открыть консольное приложение в .NET через другое консольное приложение .NET
Зависает программа при использовании Sleep Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|