|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
||||||
Очень большой string[] buf01.07.2016, 03:17. Показов 5945. Ответов 11
Метки нет (Все метки)
Суть. Есть софт, который кушает текстовые данные из лог-файла. Значения отделяются друг от друга меткой. Размер файла варьируется от 2 Мб до 1000 Мб. Файлы от 1Кб до 64Мб обрабатываются без проблем.
Есть код:
Для файлов меньшего размера, всё соответственно, ОК. И собственно сабж, как обработать очень большую строку? Понимаю, что нужно реализовывать в цикле и с применением буфера, но как сделать сие для string[] не сообразил.
0
|
||||||
| 01.07.2016, 03:17 | |
|
Ответы с готовыми решениями:
11
Какие есть средства в C# для работы с числами с очень большой точностью? Поиск дублей в большой строке с разделителями в List<string> Очень большой Bitmap,прорисовка. |
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 01.07.2016, 03:26 | |
|
Если бы вы привели хотя бы небольшой пример файла, было бы гораздо проще предложить какое-то решение. А как вы делаете какие-то непонятные действия, например зачем делать Replace, если можно сразу сделать Split, да и вообще если там гигабайтные файлы, то лучше читать по одной строке. Также вы не написали чего хотите в конечном итоге добиться, зачем вам именно string[]?
0
|
|
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
||||||||||||||||
| 01.07.2016, 07:57 [ТС] | ||||||||||||||||
|
Ну вот так выглядит сам файл:
Строка в этом файле фактически одна, т.к. контролер пишет все в одну строку, добавляя в конец текстового файла. MTK1CTR это метка. Остальные цифры это номера приборов, датчиков, которые были опрошены. Метка может быть не одна,они друг от друга отличаются, это я привел пример. Суть в том, чтобы взять это текстовый файл, достать из него все данные, убрать из него метку(метки), и то что осталось (номера) затолкать в буфер. Например мы достали из файла цифру 96728401, нам теперь её нужно сохранить в буфер, чтобы потом делать в этом буфере поиск, затолкать это дело в Oracle и всё в таком роде. Далее с этим буфером работают уже другие подпрограммы и процедуры. Добавлено через 30 минут Заменить Split(Char) на Split(String) можно:
Добавлено через 1 час 55 минут Пробовал использовать несколько другой подход:
Неужели нет способа обрабатывать файлы большого размера?
0
|
||||||||||||||||
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|
| 01.07.2016, 08:14 | |
|
shirase, а если, в зависимости от размера принять в несколько srting, потом их вернуть?
Зачем делать один buf
0
|
|
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
|||||||||||
| 01.07.2016, 09:17 [ТС] | |||||||||||
|
Я думал об этом, но не смог пока написать реализацию.
Попробовал сделать с буфером. Вышло что-то вроде:
если бы это был не string[], а char[], то
Может кто сможет адаптировать?
0
|
|||||||||||
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
||||||
| 01.07.2016, 09:52 | ||||||
|
посмотри этот вариант
0
|
||||||
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
|
| 01.07.2016, 09:57 | |
|
0
|
|
|
Администратор
|
||||||
| 01.07.2016, 10:37 | ||||||
|
shirase, я бы как-то так сделал:
0
|
||||||
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
|||||||||||||||||||||||||||||||||||
| 03.07.2016, 03:52 [ТС] | |||||||||||||||||||||||||||||||||||
|
Вызываю так:
Добавлено через 5 минут
И на выходе они отличаются по размером на пару килобайт. С чем это связано я пока не отследил. Добавлено через 35 минут Пробовал сделать так:
Пробовал mybuf = { n }; но ругается на ошибку приведения типов string в string[] Добавлено через 17 часов 30 минут
Буфер arr[] сделал ради проверки, чтобы увидеть, не нарушается ли порядок байтов или еще чего. Добавлено через 11 минут При загрузке строки обрезает часть:
0
|
|||||||||||||||||||||||||||||||||||
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 03.07.2016, 06:03 | |
|
0
|
|
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
|||||||||||||||||||||||||||
| 03.07.2016, 15:09 [ТС] | |||||||||||||||||||||||||||
![]() Добавлено через 33 минуты Набросал вот еще вариант:
Если немного подправить строку:
Пока не решил эту проблему. Добавлено через 1 час 0 минут Выявил ошибку про неверный формат. Возникает глубоко в массиве string[]. В строку пишется
Пробовал Trim,Replace, но не помогло. Добавлено через 1 час 20 минут Хм, в какой-то момент
Что я забыл? Добавлено через 5 часов 6 минут -1 оказался конец потока. С остальным разобрался.
0
|
|||||||||||||||||||||||||||
| 03.07.2016, 15:09 | |
|
Помогаю со студенческими работами здесь
12
Что означают buf[0],buf[si],buf[4] Странная ошибка при компиляции очень очень большой проги ,,boomerang,, buf.lenght-buf.length Очень большой CSV Очень большой перебор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|