![]() |
#1
|
|||
|
|||
![]()
Nil A написал(а) к All в Apr 25 07:00:40 по местному времени:
* Originally in nino.046.local * Crossposted in ru.ftn.develop Нello, All! Я вдруг посмотрел на nodelist файл, как на CVS файл просто :-) Щас проверил. Берём grep -v '^;' nodelist.075 > nodelist.cvs и оно тупо открывается в M$ Экселе. 2EG: Без изобретений велосипедов, берёшь любую либо, на твоём языке, которая парсит CVS и вперёд. Хорошая либа использует SIMD инструкции, потому что можно сразу SSE2, AVX2, AVX512 читать. Если либа не умеет, пишешь свою и выкладываешь на гитхаб. Собес в Яндекс или Сбер проходишь. Например, сразу по 32 байта грузишь mm256_loadu_si256, и _mm256_cmpeq_epi8 проверяешь на запятую, на \r, на \n, потом маски делаешь _mm256_movemaskepi8, их через or, и ты сразу знаешь позицию следующего поля, или перевода строки. Best Regards, Nil --- GoldED+/LNX 1.1.5-b20240306 |
#2
|
|||
|
|||
![]()
Alexey Khromov написал(а) к Nil A в Apr 25 15:20:33 по местному времени:
Здраствуйте, Nil! NA> Я вдруг посмотрел на nodelist файл, как на CVS файл просто :-) NA> Щас проверил. Берём grep -v '^;' nodelist.075 > nodelist.cvs и оно NA> тупо открывается в M$ Экселе. Похож, да не совсем. Переменное количество полей в CVS не предполагалось. Однако, если все разделители до флагов преобразовать к "точке с запятой", а поле флагов рассматривать целиком - вполне годно (так, в-общем то, оно и работает на С). Чуть более сложная обработка для зон и сетей еще - их надо запоминать и подставлять в начало строки каждого узла. Можно awk-ом/sed-ом отформатировать, по-идее ;) Alexey Khromov --- GoldED+/LNX 1.1.5-b20250407 |