|
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 2
|
|
Разобрать длинную строку по смещениям18.12.2015, 08:29. Показов 759. Ответов 3
Метки нет (Все метки)
Добрый день.
Есть самодельный файл с данными - данные идут блоками по 1024 байта с четко указанными границами. Все это идет одной единственной строкой. Размер файла пока максимально 100 мегабайт. Хочу все это загнать в базу данных или хотябы в csv. Как это лучше всего сделать? Пока я вижу так: открыть через streamreader, порезать файл в на строки String.Split , а потом циклом разбирать каждую строку по смещениям. Там 25 полей, каждое обходить в цикле - как то некрасиво получается. Может есть вариант проще или надежнее(Стримридер, как я понял читает файл по строкам, он от такой длинны не загнется)? Временно хранить можно в массиве или лучше изучать коллекции? там дата, текст, булевые значения и float в перемешку. Пример файла данных в data.txt а в Структура файла.txt какие поля, какое у них смещение и длинна блока данных.
0
|
|
| 18.12.2015, 08:29 | |
|
Ответы с готовыми решениями:
3
Перевести длинную бинарную строку в строку с десятичными цифрами
|
|
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 2
|
||||||
| 19.12.2015, 09:16 [ТС] | ||||||
|
Svorky, прикольная штука, когда дело до базы дойдет, попробую использовать
пока задача мельче ![]() накарабал вот такой текст
Она делит исходник на строки по 1024 символа и пишет во временный файл. Хоть что-то уже. Теперь надо из массива сразу вытаскивать нужные мне поля, отсекать лишние пробелы и выгонять результат в csv или сразу в эксель. Как освою, пойдет следующий шаг - разбирать нужные поля в нужный тип данных и писать в таблицу: скажем дату хранить именно как дату в базе, а не как текст и т.п. Ну а потом уже полировка: хранение временных данных в памяти, try\catch, как сделать правильно апдейт базы данных, чтобы не перезаписывать всю таблицу каждый раз. Ну и финал: отображение в веб форме с поиском по дате, менеджеру и клиенту.
0
|
||||||
|
44 / 33 / 14
Регистрация: 27.04.2012
Сообщений: 153
|
|||||||||||
| 21.12.2015, 10:46 | |||||||||||
|
coldmorfey, отсекать пробелы можно с помощью String.Trim(), TrimStart(), TrimEnd().
Для полей можно класс написать. Объекты в какой-нибудь лист класть вот так.
Записывать объекты или в таблицу класть можно сразу как считаешь строку, если сразу сможешь задать, что где расположено. Для экселя можно стандартной Microsoft.Interop.Excel пользоваться или есть сторонняя хорошая NetOffice.
1
|
|||||||||||
| 21.12.2015, 10:46 | |
|
Помогаю со студенческими работами здесь
4
В файле самую длинную строку Выбрать наиболее длинную строку. Разбить длинную строку на строки? Поместить в стек длинную строку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|