Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
 Заменить запись в файл с txt на xlsx  [new]
xamelione25
Member

Откуда:
Сообщений: 70
Помогите сделать так чтобы запись происходила не в txt, а в Excel

+
#include<iostream>
#include<conio.h>
#include<locale.h>
#include<math.h>
#include<time.h>
#include<cmath>
#include<fstream>
#include<string>
float tpostyp = 0;//random
float tobrk = 0;//random
float tobrevm = 0;//random
int k = 0;
int t0 = 0;
int emkost = 0;
float lambda = 0.1;
float Xi = 0;
bool KanalSvob = true;
float proizvoditelnost = 0;
float stoimost = 0;
float cena = 1;
float vsignala = 0.01;
float p = 0;

using namespace std;
float FuncPostuplenie_v_kanal_vrem(int regim)
{
	if (regim == 2)
	{
		return tpostyp = 10;
	}
	else
	{
		Xi = 2 + rand() % 6;
		tpostyp = 0.1 * pow(2.71, -0.1 * Xi);
		return tpostyp + 10.0;
	}
}
float FuncObrabotka_v_kanal_vrem(int regim)
{
	if (regim == 2)
	{
		return tobrk = 10;
	}
	else
	{

		Xi = 2 + rand() % 6;
		tobrk = 1 / 1.5 / sqrt(2 * 3.14) * pow(2.71, -(pow(Xi - 10, 2)) / 2 / pow(1.5, 2));
		return tobrk + 10.0;

	}
}
float FuncObrabotka_v_evm_vrem(int regim)
{
	if (regim == 2)
	{
		return tobrevm = 33;
	}
	else
	{
		Xi = 2 + rand() % 6;
		tobrevm = 1 / 3 / sqrt(2 * 3.14) * pow(2.71, -(pow(Xi - 33, 2)) / 2 / pow(3.0, 2));
		return tobrevm + 33.0;
	}
}
float FuncEmkost(int regim)
{
	if (regim == 2)
	{
		return emkost = 4;
	}
	else
	{
		return emkost = 2 + rand() % 6;
	}
}
/*int FuncCountElementinEVM(int *Mass,int N)
{
	int j=0;
	int min=0;
	min=Mass[0];
	for(j=1;j<N;j++)//проход по каждой эвм
	{
		if(Mass[j]<Mass[j-1])//ищем наименьший элемент в очереди эвм
		{
			min=Mass[j];
		}
	}
	return min;
}*/
int main()
{
	int N = 0;
	int reg = 0;
	int j = 0;
	int min = -1;
	int mindex = 0;
	string stroka = "";
	//int **Mass;
	setlocale(LC_ALL, "Russian");
	srand(time(NULL));
	ofstream f1;
	f1.open("log.txt", ios_base::trunc);
	if (f1)
	{
		cout << "Файл успешно открыт для записи в него статистики" << endl;
	}
	cout << "	Введите количество ЭВМ, участвующих в процессе = ";
	cin >> N;//столько будет массивов (очередей)
	f1 << "Всего ЭВМ " << N << endl;
	int* MassEVM = new int[N];
	for (int i = 0; i < N; i++)
	{
		MassEVM[i] = 0;//эвм без сигналов
	}
	int* EmkostEVM = new int[N];//массив емкостей эвм
	for (int i = 0; i < N; i++)
	{
		EmkostEVM[i] = 4;//инициализация
	}
	int* countSignalEVM = new int[N];//сколько сигналов обработала каждая эвм (для статистики)
	for (int i = 0; i < N; i++)
	{
		countSignalEVM[i] = 0;//инициализация
	}
	int countDestroySignal = 0;//сколько сигналов было уничтожено из - за смены емкости эвм
	int* SvobodnostEVM = new int[N];//состояние  емкостей эвм 0 -свободно, 1-работает
	for (int i = 0; i < N; i++)
	{
		SvobodnostEVM[i] = 0;//инициализация
	}
	int* TimerEVM = new int[N];//Таймер на каждой ЭВМ, отвечающий за обработку сигнала
	for (int i = 0; i < N; i++)
	{
		TimerEVM[i] = 0;//инициализация
	}

	int buffer = 10000;
	cout << "Введите режим работы генератора 1- случайно, 2 - постоянно" << endl;
	cin >> reg;
	//cout<<"что вернула функция "<<FuncObrabotka_v_kanal_vrem(reg);
	float time1 = 0;
	float time2 = 0;
	float time3 = 0;
	float tend1 = 0;
	float tend2 = 0;
	float* tend3 = new float[N];
	for (int i = 0; i < N; i++)
	{
		tend3[i] = 0;
	}
	bool flag = true;
	bool newsignal = false;
	bool flagkanal = true;
	int* flagevm = new int[N];
	for (int i = 0; i < N; i++)//0 - свободная, 1 - обрабатывает
	{
		flagevm[i] = 0;
	}
	//while сам процесс
	do
	{
		t0 = t0 + 1;

		if (KanalSvob == true)//проверка на свободность канала
		{
			if (flagkanal == true)
			{
				tend1 = t0 + (time1 = FuncPostuplenie_v_kanal_vrem(reg));
				flagkanal = false;
			}
			//if(t0<tend1)//поступение в канал
			//{
			KanalSvob = false;
			//f1<<"Прошло"<<t0<<" мск"<<"Канал"<<KanalSvob<< "Сигнал обрабатывается в канале и не поступал в ЭВМ"<<endl;
		//}
		}
		else
		{

			if (buffer != 0)//если в буфере есть место, заносим сигнал в него
			{

				buffer--;//буфер уменьшен на величину сигнала
			}
		}
		//начало обработки сигнала в канале
		if (KanalSvob == false)//значит в канале есть сигнал
		{
			if (flag == true)
			{
				tend2 = t0 + (time2 = FuncObrabotka_v_kanal_vrem(reg));
				flag = false;
			}

			if (t0 < tend2)
			{

				//идет обработка сигнала
			}
			else
			{

				k++;//увеличиваем счетчик количества обработанных сигналов на 1
				newsignal = true;
				f1 << "Прошло " << t0 << " мск " << " Канал " << KanalSvob << " Из канала вышел новый сигнал. Всего сигналов обработано в канале = " << k << endl;
				if (t0 >= tend1)
				{
					KanalSvob = true;
					flag = true;
					flagkanal = true;
					buffer++;//берем из буфера следующий необработанный сигнал и освобождаем место

				}
			}

		}
		//поступление в ЭВМ
		if ((k != 0) && (newsignal == true))
		{
			//min=FuncCountElementinEVM(MassEVM,N); //ищем ЭВМ с наименьшей занятостью
			min = MassEVM[0];
			mindex = 0;
			for (j = 1; j < N; j++)//проход по каждой эвм
			{
				if (MassEVM[j] < min)//ищем наименьший элемент в очереди эвм
				{
					min = MassEVM[j];///////!!!!!
					mindex = j;
				}

			}
			//cout<<"минимальный элемент равен"<<min;
			MassEVM[mindex] = MassEVM[mindex] + 1;//добавляем сигнал в очередь на обработку ЭВМ


			if (MassEVM[mindex] > 0)//если машина обрабатывает сигнал, то её емкость не меняем
			{
				SvobodnostEVM[mindex] = 1;
				time3 = FuncObrabotka_v_evm_vrem(reg);
				TimerEVM[mindex] = time3;//Заводим таймер для выбранной ЭВМ
			}
		}
		//сама обработка
		for (int j = 0; j < N; j++)
		{
			if ((flagevm[j] == 0) && (newsignal == true))
			{
				tend3[j] = t0 + TimerEVM[j];
				flagevm[j] = 1;
				newsignal = false;
			}
			if (t0 <= tend3[j])
			{
				//сигнал еще обрабатывается
				f1 << "Прошло " << t0 << " мск" << "Канал " << KanalSvob << " Сигнал обрабатывается в " << j + 1 << " ЭВМ" << endl;
				for (int index = 0; index < N; index++)
				{
					if (SvobodnostEVM[index] == 0)//если ЭВМ не работает, то изменяем её емкость
					{
						EmkostEVM[index] = FuncEmkost(reg);
						countDestroySignal = countDestroySignal + MassEVM[index];
						MassEVM[index] = 0;//очищаем очередь ЭВМ, т.к была изменена её ёмкость
					}
				}
			}
			else
			{
				for (int index3 = 0; index3 < N; index3++)//SvobodnostEVM[j]=0;
				{
					if ((t0 > tend3[index3]) && (tend3[index3] > 0) && (SvobodnostEVM[index3] == 1))//вм закончила обработку
					{
						if (flagevm[index3] == 1)
						{
							SvobodnostEVM[index3] = 0;
							countSignalEVM[index3] = countSignalEVM[index3] + 1;//увеличиваем счетчик количесва обработанных ЭВМ сигналов
							f1 << "Прошло " << t0 << " мск" << "Сигнал обработался в " << index3 + 1 << " ЭВМ" << endl;
							TimerEVM[index3] = 0;//обнуляем таймер ЭВМ, которая закончила свою работу
							flagevm[index3] = 0;
						}
					}

				}
			}
		}
		if (min == -1)
		{
			f1 << "Прошло " << t0 << " мск " << " Канал " << KanalSvob << " Сигнал обрабатывается в канале и не поступал в ЭВМ" << endl;
		}
		else
		{
			//f1<<"Прошло "<<t0<<" мск"<<"Канал"<<KanalSvob<< "Сигнал обрабатывается в"<<min<<" ЭВМ"<<endl;
		}
	} while ((k < 1000) && (buffer != 0));//k=1000
	cout << "Запись в файл завершена" << endl;
	int signalovobr = 0;
	f1 << "Прошло " << t0 << " мск " << " Канал " << KanalSvob << " Обработка завершена. Обработано сигналов каждой ЭВМ:" << endl;
	for (int index = 0; index < N; index++)
	{
		f1 << "ЭВМ № " << index + 1 << " " << countSignalEVM[index] << endl;
		signalovobr = signalovobr + countSignalEVM[index];
	}

	f1 << "В результате изменения емкости ЭВМ было уничтожено " << countDestroySignal << " сигналов" << endl;
	proizvoditelnost = float(k) / float(t0);
	stoimost = signalovobr * cena;
	p = emkost / vsignala / k;
	f1 << "Производительность системы = " << proizvoditelnost << " сигналов / мск " << endl;
	f1 << "Стоимость обработки сигналов  в ЭВМ = " << stoimost << " руб." << endl;
	f1 << "Вероятность переполнения накопителя = " << p << endl;
	f1.close();
	system("Pause");
	//delete MassEVM;
	//delete SvobodnostEVM;
	//delete TimerEVM;
	//delete countSignalEVM;
}
18 фев 21, 12:44    [22282725]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
В простейшем случае ты можешь переименовать расширение в СSV

f1.open("log.csv", ios_base::trunc);


И логфайл привести к табличному виду с разделителями например ";".

И это Excel должен открыть как табличку.
18 фев 21, 12:50    [22282735]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
*.xslx это xml в zip-архиве. Пишешь в xml, затем пакуешь.
Структура xml тут описана.
18 фев 21, 12:52    [22282737]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

xamelione25
f1.open("log.txt", ios_base::trunc);
Вот в этой строчке надо ".txt" заменить на ".xlsx".

Ну или читать спецификацию xlsx и переделывать весь вывод согласно ней.

Posted via ActualForum NNTP Server 1.5

18 фев 21, 12:52    [22282738]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
xamelione25
Member

Откуда:
Сообщений: 70
Dimitry Sibiryakov,

Dima T,

mayton

гляньте тут, я там писал более подробнее о проблеме с которой я столкнулся
Модератор: Нет. Мы не будем ходить в другие форумы. Это - модераторский совет.


Сообщение было отредактировано: 18 фев 21, 12:50
18 фев 21, 12:56    [22282740]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
xamelione25,

Записывай всё в tsv и не делай себе голову. \t - разделитель полей, \n - строк. Табы в строках меняй на что-нибудь.
18 фев 21, 13:21    [22282760]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
xamelione25
Member

Откуда:
Сообщений: 70
crutchmaster, Dimitry Sibiryakov, mayton,

да я уже с csv все решил ... спс))

единственное подскажите как сделать по конечным границам заполненных ячеек в икселе ... по окончанию записи в него ... в csv формате ... выделение всех границ ячеек входящих в этот диапазон

ну например вот так

К сообщению приложен файл. Размер - 164Kb
18 фев 21, 13:29    [22282767]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
xamelione25,
В коде надо?
- вкл записи макроса
- выделить
- посмотреть полученный код макроса.
18 фев 21, 14:17    [22282816]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
crutchmaster
xamelione25,

Записывай всё в tsv и не делай себе голову. \t - разделитель полей, \n - строк. Табы в строках меняй на что-нибудь.

Никогда не понимал этот формат. Табы на просмотре текста выглядят ужасно. Сложно
понять - где пробел в данных а где разделитель. Чтоб трабл-шутить нужно смотреть
вооруженным глазом через hex-editor или среду с подсветкой управляющих символов.
18 фев 21, 14:31    [22282831]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Табы на просмотре текста выглядят ужасно.

Отлично выглядит если
1) Данные примерно одинаковой длины;
2) Длина не близка в кратности таба.

Posted via ActualForum NNTP Server 1.5

18 фев 21, 14:37    [22282835]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
crutchmaster
xamelione25,

Записывай всё в tsv и не делай себе голову. \t - разделитель полей, \n - строк. Табы в строках меняй на что-нибудь.

Никогда не понимал этот формат. Табы на просмотре текста выглядят ужасно. Сложно
понять - где пробел в данных а где разделитель. Чтоб трабл-шутить нужно смотреть
вооруженным глазом через hex-editor или среду с подсветкой управляющих символов.

Не надо фигней заниматься, открыл в экселе и смотри. CSV намного хуже, где разделитель сам печатный символ, который может содержаться в данных.
18 фев 21, 14:39    [22282838]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Вот за что люблю наш форум... Архитекторы сцепились за сплиттер.
18 фев 21, 14:43    [22282841]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
По сабжу. Если сплиттер == запятая, все нормально экранируется кавычками. И сами кавычки тоже.

"Timestamp,Message"
2021-02-18T16:31:14.417069,"Fucken comma ',' in value"
2021-02-18T16:31:14.4260667,Fucken tab 	 in value
2021-02-18T16:31:14.4260667,"Fucken ""quoted literal"" in value"


Ну а табулятор - невидимка. Вот такие дела.
18 фев 21, 17:33    [22282997]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,

>Ну а табулятор - невидимка. Вот такие дела.
Та мы туда и не смотрим)))
18 фев 21, 19:20    [22283057]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
Вот за что люблю наш форум... Архитекторы сцепились за сплиттер.

Ты теоретик, а мы практики, нае... с этим
18 фев 21, 21:09    [22283108]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Вы, практики наверное ничего больше 1 Гига в CSV не грузили в БД.

А я - грузил. И в Excel такой файл не открывался. Вот такие пироги.
18 фев 21, 21:17    [22283111]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
Вы, практики наверное ничего больше 1 Гига в CSV не грузили в БД.

А я - грузил. И в Excel такой файл не открывался. Вот такие пироги.

Ты же не админ, код писать умеешь, зачем тут эксель вообще непонятно.

У меня трижды в день качается 6-8 Гб, превращаю в БД размером 2 Гб, на все 40 минут уходит.
18 фев 21, 21:28    [22283117]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Хм.... 8 Гигабайт за 40 минут. Это приблизительно 204 Мб в минуту или 3.4 Мб в секунду.

Медленно-ва-то... Для современных носителей и сетей. Хотя чорт его знает. Вангую что I/O небыстрый.
18 фев 21, 21:38    [22283119]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
xamelione25,

автор ну что? У тебя получилось CSV открыть в Excel?
18 фев 21, 21:40    [22283120]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
Вангую что I/O небыстрый.

Небыстрый FoxPro, на котором все написано. Но производительность всех устраивает
18 фев 21, 21:41    [22283121]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
xamelione25
Member

Откуда:
Сообщений: 70
mayton,
да, открылся...
18 фев 21, 21:43    [22283122]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Фокс - хорошая штука. Уважаю. У них интересный тип индекса был. Какой-то там rush.
И на сравнительных тестах если сравнивать dBase vs Fox, то последний выигрывал когда
были запросы специфичны к этому рашу. Интересно Microsoft перенёс это ноу-хау в MS-SQL?

Кто есть MS-SQL-щики? Проясните plz.
18 фев 21, 21:44    [22283124]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1966
mayton
У них интересный тип индекса был. Какой-то там rush.

Без детализации.
Имхо, маркетинговый шит.
18 фев 21, 21:46    [22283125]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
bk0010
Member

Откуда:
Сообщений: 5058
mayton
Фокс - хорошая штука. Уважаю. У них интересный тип индекса был. Какой-то там rush.
И на сравнительных тестах если сравнивать dBase vs Fox, то последний выигрывал когда
были запросы специфичны к этому рашу. Интересно Microsoft перенёс это ноу-хау в MS-SQL?
Кто есть MS-SQL-щики? Проясните plz.
Технология Rushmore. То ли сжатые индексы, то ли bitmap (не помню). Подробности тут, искать слово Rushmore.
18 фев 21, 22:11    [22283134]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
А.. точно.
18 фев 21, 22:20    [22283138]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1966
bk0010
Технология Rushmore. То ли сжатые индексы, то ли bitmap (не помню). Подробности тут, искать слово Rushmore.

В том-то и дело, что подробностей нигде нет. Ни описания реализации, ни методики применения, одни общие слова.
18 фев 21, 22:28    [22283145]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3722
на фоксклубе же есть для понимания
18 фев 21, 22:32    [22283149]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Сложение битмапов полученных с двух/нескольких индексов для последующей выборки записей.
Это использовали все кому не лень, включая Interbase.

Posted via ActualForum NNTP Server 1.5

18 фев 21, 23:05    [22283157]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
По смыслу похоже на Bitmap Index. Однако фраза "это использовали все кому не лень" - слишком сильная фраза.
Мне не нравится квантор "все". Это слишком идеализирует наш мир. Скорее использовали те кто хотел.
18 фев 21, 23:15    [22283160]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9478
Откуда в FoxPro битмап индексы?
(по крайне мере 2.5, 2.6, дальше уже Visual FoxPro)
18 фев 21, 23:20    [22283165]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3722
о VFP речь и идет
18 фев 21, 23:28    [22283168]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Рашмор - не в индексах, а в способе использования сразу нескольких.

Posted via ActualForum NNTP Server 1.5

18 фев 21, 23:28    [22283169]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
Табы на просмотре текста выглядят ужасно.

В сыром виде, что угодно выглядит ужасно.
mayton
Сложно понять - где пробел в данных а где разделитель.

Просто надо использовать специальный софт, который делает табличку и умеет смотреть файл кусками.
mayton
Никогда не понимал этот формат.

Это замечательный формат. Он преобразовывается в массив массивом буквально на раз-два. Делаешь сплит по \n, потом пробегаешься по тому, что вышло и делаешь сплит по \t. Всё. С csv - чехарда экранированием кавычек и "," / ";", которых в тексте, как правило, навалом, в отличии от табов.

Сообщение было отредактировано: 19 фев 21, 04:35
19 фев 21, 04:36    [22283226]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
Если сплиттер == запятая, все нормально экранируется кавычками. И сами кавычки тоже.

Никак она не экранируется. Парсеру надо бегать по строке и помнить, была там кавычка или нет. Еще кавычку в кавычках надо экранировать и вырезать по кавычке в начале/конце строки, когда перегоняешь из csv. В tsv экранируются только непечатные символы при записи, которые и так должны быть экранированы по всем правилам здравого смысла.
19 фев 21, 04:40    [22283227]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
crutchmaster
В tsv экранируются только непечатные символы при записи, которые и так должны быть экранированы по всем правилам здравого смысла.
... но не обязаны: возникает необходимость "переделывать" \t, \r, \n и прочие "радости" в полях записи.
19 фев 21, 06:56    [22283231]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
Фокс - хорошая штука. Уважаю. У них интересный тип индекса был. Какой-то там rush.
И на сравнительных тестах если сравнивать dBase vs Fox, то последний выигрывал когда
были запросы специфичны к этому рашу. Интересно Microsoft перенёс это ноу-хау в MS-SQL?

Кто есть MS-SQL-щики? Проясните plz.

Рашмор по сути это построение плана выполнения запроса. Официальных заявлений не было, а по сплетням что-то из фокса позаимствовали для MSSQL
19 фев 21, 07:15    [22283236]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
Basil A. Sidorov
но не обязаны

Обязаны.
Если у тебя будут \r\n в строках их в любом случае придётся переделывать. Исключительно табы отэкранировать проще, когда заворачиваешь их в строку.

Basil A. Sidorov
прочие "радости" в полях записи.

Какие "радости"? Непечатные? Их в любом случае надо экранировать. С печатными никаких проблем нет в принципе. Кроме \n\t следить не зачем. С запятыми еще натрахаешься, когда тебе с ru локали будут вещественные числа переводить в строку с запятой вместо точки и при парсинге ждать запятую.

Сообщение было отредактировано: 19 фев 21, 07:19
19 фев 21, 07:24    [22283238]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
crutchmaster
Если у тебя будут \r\n в строках их в любом случае придётся переделывать.
Подчеркнул.
Урежьте, в общем, квантор всеобщности.
19 фев 21, 10:32    [22283293]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
Basil A. Sidorov
Урежьте, в общем, квантор всеобщности.

А как твой csv читать, если там в значениях /n ?? Из-за такого вот говнолепства потом ломаешь голову.
19 фев 21, 10:38    [22283297]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
crutchmaster
mayton
Если сплиттер == запятая, все нормально экранируется кавычками. И сами кавычки тоже.

Никак она не экранируется. Парсеру надо бегать по строке и помнить, была там кавычка или нет. Еще кавычку в кавычках надо экранировать и вырезать по кавычке в начале/конце строки, когда перегоняешь из csv. В tsv экранируются только непечатные символы при записи, которые и так должны быть экранированы по всем правилам здравого смысла.

Ты отстал от жизни.

https://tools.ietf.org/html/rfc4180
   6.  Fields containing line breaks (CRLF), double quotes, and commas
       should be enclosed in double-quotes.  For example:

       "aaa","b CRLF
       bb","ccc" CRLF
       zzz,yyy,xxx

   7.  If double-quotes are used to enclose fields, then a double-quote
       appearing inside a field must be escaped by preceding it with
       another double quote.  For example:

       "aaa","b""bb","ccc"



И переводы строки и кавычки внутри полей разрешены.

Сложность парсера не имеет значения. Это его, парсера responsibility.

Я речь вел просто о трабл-шутинге ошибок загрузки. И с моей скромной точки зрения чем больше принтабельных
символов - тем лучше. TSV - тоже неплохо, но надо смотреть сквозь редактор с хайлайтом контролов.

Я вижу единственный полезный смысл - поиграть с выбором символа квоты и сплиттера чтобы было меньше
пересечений с доменной областью и CSV/TSV был human-readable особенно в тех случаях когда нам это
ничего не стоит с точки зрения конфигурации.
19 фев 21, 11:52    [22283352]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
crutchmaster
А как твой csv читать, если там в значениях /n ??
Я за csv не агитировал.
Я утверждал (и утверждаю), что tsv не является "серебрянной пулей".

Сообщение было отредактировано: 19 фев 21, 12:23
19 фев 21, 12:29    [22283387]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
Сложность парсера не имеет значения. Это его, парсера responsibility.

Ровно до тех пор, пока функционал парсера тебя устраивает и пока этот парсер доступен.
mayton
TSV - тоже неплохо, но надо смотреть сквозь редактор с хайлайтом контролов.

CSV с переносом строк не надо смотреть сквозь редактор? Там вообще всё будет поломано. Ну и просмотр - это responsibility смотрелки.

mayton
И переводы строки и кавычки внутри полей разрешены.

Что там у местного парсера таблички с многосточными значениями? Всё ожидаемо плохо? Почему не прикрутили нормальный парсер? Правильно, нахера делать нормальные человеческие эскейпы для спецсимволов, давайте херачить всё в двоичном виде и обламываться.

[csv]
1,2
"1
2","3
4"[/csv]
12
"1
2""3
4"


mayton
Я вижу единственный полезный смысл - поиграть с выбором символа квоты и сплиттера

Не из чего выбирать. \t, \n и escape \\ \t \n объективно лучше. Хочешь - меняй таб на ";" и смотри. Если твой редактор так не может - это его responsibility.

Сообщение было отредактировано: 20 фев 21, 07:51
20 фев 21, 07:51    [22283897]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
Basil A. Sidorov
Я утверждал (и утверждаю), что tsv не является "серебрянной пулей".

tsv - это лучший вариант. У вас не может быть против этого аргументов. Вы можете сказать, что парсеру надо делать замену для escape, но csv тоже надо менять две кавычки на одну. В остальном парсер tsv - элементарен, формат проще и надёжнее, чем csv. Легко просто и без сраных танцев делается, например, подсчёт строк или столбцов в строке.

Сообщение было отредактировано: 20 фев 21, 07:58
20 фев 21, 08:04    [22283901]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
Для записи TSV/CSV файлов редко используют специализированные оболочки, просто пишут как текстовый файл. В результате получается рабочий код, который стабильно работает пока оператор не заведет что-то нестандартное, например наименование товара начнет с двойной кавычки и начинается веселье: полдокумента почему-то не грузится, т.к. в CSV можно обрамлять перенос строк.
В TSV тоже может быть подобное, хоть табуляция непечатный символ, но он копипастится, и этим способом попадает в БД, но тут проблемы только в одной строке, следующие грузятся, и источник проблемы проще искать.
20 фев 21, 08:25    [22283905]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
Dima T
Для записи TSV/CSV файлов редко используют специализированные оболочки

Нее, руками писать в файл - это уже за гранью. Там напишут запятых в десятичный разделитель вместо точек, а таб может в принципе не вводиться (кнопка будет менять фокус элементов)
Dima T
хоть табуляция непечатный символ, но он копипастится

Ничего не копипастится. Понятие структурированные данные и набор чего-то кривыми руками в редактор ортогональны. Там данные мало того, что будут не правильно структурированы, так там еще атрибуты записей никогда не будут соответствовать своему домену.
20 фев 21, 09:18    [22283919]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dima T,
Ну как в нашем тысячилетиии без ГУИ?)
20 фев 21, 09:37    [22283924]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dima T

В TSV тоже может быть подобное, хоть табуляция непечатный символ, но он копипастится, и этим способом попадает в БД, но тут проблемы только в одной строке, следующие грузятся, и источник проблемы проще искать.

Копипастится и попадает в БД? Прикольно вы работаете. LOL.
А у вас там SQL injection случайно в БД не попадает?

Я уж не говорю про то, что если проблемы в одной строке, то скорее всего вы эту ошибку никогда не найдёте.
20 фев 21, 10:45    [22283954]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
Dima T

В TSV тоже может быть подобное, хоть табуляция непечатный символ, но он копипастится, и этим способом попадает в БД, но тут проблемы только в одной строке, следующие грузятся, и источник проблемы проще искать.

Копипастится и попадает в БД? Прикольно вы работаете. LOL.
А у вас там SQL injection случайно в БД не попадает?

Я уж не говорю про то, что если проблемы в одной строке, то скорее всего вы эту ошибку никогда не найдёте.

Это не мы. Мы выгрузку из той БД получаем с наездом что наша прога их файлик грузить не хочет.
Ищется элементарно, если знаешь как в hex-редакторе посмотреть.
20 фев 21, 12:03    [22284000]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
crutchmaster

Что там у местного парсера таблички с многосточными значениями? Всё ожидаемо плохо? Почему не прикрутили нормальный парсер? Правильно, нахера делать нормальные человеческие эскейпы для спецсимволов, давайте херачить всё в двоичном виде и обламываться.

[src]
12
"1
2""3
4"


Ну и зачем ты это написал? Это доказательство в стиле Паниковского.
20 фев 21, 12:22    [22284009]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
crutchmaster
mayton
Сложность парсера не имеет значения. Это его, парсера responsibility.

Ровно до тех пор, пока функционал парсера тебя устраивает и пока этот парсер доступен.

Почему он станет недоступен? 6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу.

https://github.com/search?q=csv parser

А хотя-бы и не было. Неужели сам бы не написал? Стандарт описан. Несложный.
20 фев 21, 12:25    [22284012]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
Копипастится и попадает в БД? Прикольно вы работаете. LOL.

В этом нет никакого криминала. Табуляция вполне себе символ, никакой угрозы безопасности не несет.

Вставить табуляцию копипастом элементарно благодаря браузерам. Пример:

Выделяем табличку и давим Ctrl+C
12
34

Вставляем что получилось Ctrl+V, а получился TSV
1	2
3	4

Опубликовав это сообщение я сохранил табуляцию в БД сайта sql.ru :)
20 фев 21, 12:50    [22284024]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
crutchmaster
пропущено...

Ровно до тех пор, пока функционал парсера тебя устраивает и пока этот парсер доступен.

Почему он станет недоступен? 6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу.

https://github.com/search?q=csv parser

А хотя-бы и не было. Неужели сам бы не написал? Стандарт описан. Несложный.

Вообще спор не стоит выеденного яйца. Нужно просто использовать качественную библиотеку и не париться.

Давайте лучше поговорим про строки и Юникод. А лучше вообще разработаем свой класс строки. Ведь С++
это язык программирования созданный что бы писать свои классы строк. Я и название придумал: JaString.
20 фев 21, 12:53    [22284026]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу.

Проблема как раз в продвинутости парсеров, они слишком много нарушений прощают.
Пример вышеописанной проблемы с кавычкой. Сохрани текст ниже в файл CSV и открой его экселем
ООО "Рога и копыта;1
"ООО Рога и копыта;2
ООО Рога и копыта;3
20 фев 21, 13:10    [22284037]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dima T
petrav
Копипастится и попадает в БД? Прикольно вы работаете. LOL.

В этом нет никакого криминала. Табуляция вполне себе символ, никакой угрозы безопасности не несет.

Вставить табуляцию копипастом элементарно благодаря браузерам. Пример:

Выделяем табличку и давим Ctrl+C
12
34

Вставляем что получилось Ctrl+V, а получился TSV
1	2
3	4

Опубликовав это сообщение я сохранил табуляцию в БД сайта sql.ru :)

Криминала нет? А потом в БД данные не грузятся? Ну не знаю…

Тут дело в том что в UI должен быть фильтр, аля белый список, который пропускает
только то что можно. Если табы по смыслу поля данных недопустимы, то их там (в БД)
быть не должно — хоть копипасть, хоть чё делай.

Далее… Нужно использовать качественную библиотеку в которой исключены сбои из-за
каких-то нюансов. Всё должно быть экранировано и т.д. Возможно она же (библиотека)
проверяет корректность данных: говорим ей непечатных символов, кроме пробелов, быть
не должно.

И вот ещё что… Если ошибка только в одной строке, то тут возникает нюанс. В зависимости
от того как построен парсер может случиться ситуация когда ошибка внешне станет
незаметной если ошибка только в одной строке. False negative страшная вещь.

Сообщение было отредактировано: 20 фев 21, 13:08
20 фев 21, 13:12    [22284039]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
Криминала нет? А потом в БД данные не грузятся? Ну не знаю…

Тут дело в том что в UI должен быть фильтр, аля белый список, который пропускает
только то что можно. Если табы по смылу поля данных недопустимы, то их там (в БД)
быть не должно — хоть копипасть, хоть чё делай.


Если не путаю там учет в 1С идет. Собственно и криминала не было до тех пор как потребовалось выгрузить именно в TSV, в любой другой формат табуляция выгружается без проблем.

petrav
И вот ещё что… Если ошибка только в одной строке, то тут возникает нюанс. В зависимости
от того как построен парсер может случиться ситуация когда ошибка внешне станет
незаметной если ошибка только в одной строке. False negative страшная вещь.

Ошибка будет незаметна. Лишняя табуляция сдвинула последующие поля в строке

Сообщение было отредактировано: 20 фев 21, 13:14
20 фев 21, 13:19    [22284043]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
Далее… Нужно использовать качественную библиотеку в которой исключены сбои из-за
каких-то нюансов. Всё должно быть экранировано и т.д. Возможно она же (библиотека)
проверяет корректность данных: говорим ей непечатных символов, кроме пробелов, быть
не должно.

Теоретически да, а практически если у тебя десятки-сотни разных источников этих выгрузок, то ты просто устанешь долбить всех писателей чтобы писали правильно, плюнешь и будешь парсить лишь бы парсилось.
20 фев 21, 13:25    [22284044]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dima T
mayton
6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу.

Проблема как раз в продвинутости парсеров, они слишком много нарушений прощают.
Пример вышеописанной проблемы с кавычкой. Сохрани текст ниже в файл CSV и открой его экселем
ООО "Рога и копыта;1
"ООО Рога и копыта;2
ООО Рога и копыта;3

Это философия. Или старый принцип проектирования гетерогенных систем.
Аналогичный текст я читал где-то в сетевых протоколах.

https://tools.ietf.org/html/rfc4180
Interoperability considerations:

Due to lack of a single specification, there are considerable
differences among implementations. Implementors should "be
conservative in what you do, be liberal in what you accept from
others" (RFC 793 [8]) when processing CSV files. An attempt at a
common definition can be found in Section 2.

Вобщем writer/serializer должен быть максимально строг. А reader/parser/de-serializer - максимально толерантен
к исходным данным.
20 фев 21, 14:23    [22284077]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav

Давайте лучше поговорим про строки и Юникод. А лучше вообще разработаем свой класс строки. Ведь С++
это язык программирования созданный что бы писать свои классы строк. Я и название придумал: JaString.

Зачем?
20 фев 21, 14:29    [22284079]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3722
смотрю в dbForge для MySql
настройки выгрузка-копирование в CSV -
хочешь - в кавычках все,
хочешь - только текст
хочешь - все поля без кавычек
разделитель настраивается
и все нормально работает

надо понять что CSV должен быть настраиваемым, как загрузка так и выгрузка
и TSV - частный случай CSV
20 фев 21, 14:41    [22284082]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
ЕМНИП при импорте произвольных пользовательских данных в Excel - есть мастер
импорта который позволяет указать различные границы колонок и сплиттеры.
Есть даже вариант испорта fixed-column. Это тесно связано со старыми форматами
dbms где records имели одинаковый бинарный размер. Щас такое уже не катит
но лет 20 назад можно было взять dbBase/FoxPro датафайл. Отрезать ему голову
и спокойно заимпортировать такой файл в Excel.
20 фев 21, 14:50    [22284093]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
ЕМНИП при импорте произвольных пользовательских данных в Excel - есть мастер
импорта который позволяет указать различные границы колонок и сплиттеры.
Есть даже вариант испорта fixed-column. Это тесно связано со старыми форматами
dbms где records имели одинаковый бинарный размер. Щас такое уже не катит
но лет 20 назад можно было взять dbBase/FoxPro датафайл. Отрезать ему голову
и спокойно заимпортировать такой файл в Excel.

Записи в DBF фиксированного размера, а числа с датами хранятся в сериализованном виде. Хотя непонятно зачем это делать если эксель и так их открывает.
Но нынче фокус может не пройти, т.к. добавились типы которые хранятся без сериализации (int, datetime)
20 фев 21, 14:56    [22284097]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Ну или без dbf. Вот такие позиционные форматы.

+

$ head GAMES2.LST
FILE GAME NAME COMPANY YEAR
1942 1942: The Pacific Air War MPS 1994
A10 A10 TANK KILLER DYNAMIX 1989
ADIBOU ADIBOU COCTEL VISION 1993
AL-QADIM Al-Qadim: The Genie's Curse SSI 1994
ALEGACY ALIEN LEGACY SIERRA ON-LINE & DYNAMIX 1994
ANGEL Angel Wrestling GREAP 1993
AOE Aces Over Europe SIERRA ON-LINE 1993
ARENA The Elder Scrolls: Arena BETHESDA SOFTWORK 1994
20 фев 21, 19:30    [22284219]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton, нынче json и строки в utf8 наше всё. Даже MS с этим согласен. Зачем старье ворошить? Его надо хоронить, и чем быстрей, тем лучше.
20 фев 21, 20:55    [22284258]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Наше всё это православный XML и XML схемы.
20 фев 21, 21:14    [22284263]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
petrav
Наше всё это православный XML и XML схемы.

MS уже так не считает, это тоже старье
20 фев 21, 21:20    [22284264]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dima T
mayton, нынче json и строки в utf8 наше всё. Даже MS с этим согласен. Зачем старье ворошить? Его надо хоронить, и чем быстрей, тем лучше.


(задумчиво)

Если рассматривать json как способ экспорта или импорта данных - то скорее нет, чем да.

При прочих условиях (есть выбор) я-бы выбирал лаконичный способ отдать данные.

JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях.
И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON
может удвоить объем файла экспорта.

Кто из нас готов согласиться с таким внезапным увеличением накладных расходов? И зачем?
Все равно прогрузить в память такой файл (16 Гб) почти нереально. А если не грузить - то как делать
запросы через JSonPath, JSonifier.

Хотя для REST-сервисов он удобен. Как само-описательный. Все значения посылаемого месседжа
- имеют внятные названия и их видно глазами в tcp-dump например. Даже кодер слабой квалификации
более-менее сносно решает проблемы если ему показать проблемный request/response в этом формате.

Но в Рест-сервисах речь-бы не шла о 8Гб.
20 фев 21, 21:33    [22284267]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
Наше всё это православный XML и XML схемы.

XML был смелым экспериментом в 2000х. У меня на эту тему было куплено несколько восторженных книг.

Есть такая избитая фраза - "практика показала"... Вобщем показала что
некоторые из предметных областей (XHTML, Dbms (Sedna), Oracle(XmlType)) провалились
в части активного использования XML. Или не принесли ожидаемого эффекта. Например при
выборе опции формата REST ответа - большая часть разработчиков и кастомеров выбирают
Json вместо Xml. Это обычный прагматизм и бритва Оккама. Если задача решается вовлечением
меньшего числа сущностей - то ее так и надо решать.

Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++
имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать.
А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация
схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml?
Ради красивого слова? Или угловых скоб?
20 фев 21, 21:45    [22284269]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++
имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать.
А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация
схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml?
Ради красивого слова? Или угловых скоб?

В случае сложных документов лично мне кажется, что XML гораздо более читабелен чем json.
При наличии XML-схемы в редакторе гораздо (на порядок) легче писать XML документы благодаря
автодополнению кода — Ctrl+Space и появляется меню с возможными элементами или допустимыми
значениями атрибутов. Что-то мне подсказывает, что XML (даже без схем) вообще лучше поддаётся
автоматической валидации по сравнению с json.

Когда я работал в web я знал и XSLT, и Схемы, и XPath (и даже DTD). Проблем не было.

XML схемы я вообще в метро выучил полистывая распечатанную документацию.
20 фев 21, 22:01    [22284275]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
mayton
JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях.
И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON
может удвоить объем файла экспорта.

В запакованном виде они не сильно будут отличаться. Еще один неприятный момент CSV - отсутствие описания структуры данных. Прилетает такая выгрузка из 10-15 колонок и сиди гадай где что.

Потом разнородные данные не сохранить в один файл CSV. А как правило надо выгрузить именно такие данные. Например при выгрузке накладной надо куда-то писать шапку. Сталкивался с тем что при небольшой шапке ее суют в тело, т.е. табличка становится такой
Номер документа Дата КонтрагентТоварКоличество

И хз что теперь меньше на диске займет.
mayton
Все равно прогрузить в память такой файл (16 Гб) почти нереально.

Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное.
21 фев 21, 07:59    [22284340]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton

Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++
имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать.
А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация
схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml?
Ради красивого слова? Или угловых скоб?

Кстати сказать, а наличие JSON Schema тебя не смущает? Странные у тебя рассуждения.

PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.
22 фев 21, 13:08    [22284708]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Может ли json описывать документы? Вот никогда такого не видел. Пример:

<text>
<paragraph>Bla bla bla bla <ref objId="123"/> bla bla bla bla bla.</paragraph>
<paragraph>Bla bla <ref objId="321"/> bla bla bla bla bla bla bla.</paragraph>
</text>

Ну и как тут без XSLT...

Сообщение было отредактировано: 22 фев 21, 13:16
22 фев 21, 13:21    [22284718]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3722
petrav
JavaScript — единственный язык
программирования фронт-энда.
это в каком виде спорта?)
22 фев 21, 13:25    [22284720]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton

Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++
имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать.
А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация
схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml?
Ради красивого слова? Или угловых скоб?

Кстати сказать, а наличие JSON Schema тебя не смущает? Странные у тебя рассуждения.

PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.

Я пробовал Json-schema. К сожалению мне не удалось сделать проверки достаточно строгими.
Тоесть у меня получилось проверять только те сущности которые были декларированы. А новые
почему-то успешно проходил валидацию хотя и не должны-быть по идее.
22 фев 21, 13:31    [22284724]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dima T

Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное.

json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним
на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски
что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект
в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть
как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer
при запросах к толстым документам.
22 фев 21, 13:35    [22284725]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dima T
mayton
JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях.
И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON
может удвоить объем файла экспорта.

В запакованном виде они не сильно будут отличаться. Еще один неприятный момент CSV - отсутствие описания структуры данных. Прилетает такая выгрузка из 10-15 колонок и сиди гадай где что.

Да. Это проблема. Но внятные описания колонок можно сгенерировать лишь для небольшого подмножества
таблиц с малым числом колонок. Я работал с дата-аналитикой где количество колонок было до 1000.
И названия у них были такие типа FXC01.D2.M4 e.t.c. И была какая-то визуальная хронология. Тоесть
следующая колонка могла быть инкрементом от предыдущей. И понимал такое имя - только data-analyst
который работал с данными и мог сказать что - цена акции такой-то в таких-то единицах.

Для таких баз отдельно создавалась мелкая базка которая называлась мета-информация и туда складывались
детальные характеристики. Дескрипшен. Единицы. Иногда вместо этой базки мог быть хардкод в софте.
Например сет классов или пропертей описывал эти колонки наподобие ORM. Хотя сам ОРМ не использовался
но идея была похожа.

Тоесть вобщем неинформативные названия реально существуют но XML не решает на 100%. По крайней мере
я не видел провайдеров бизнес-информации которые лично решили публиковать сводки в XML только потому
что там информативные поля. Скоре они выбирали CSV и полагались на мастерство и опыт тех людей для которых
этот CSV был предназначен.

Сообщение было отредактировано: 22 фев 21, 13:36
22 фев 21, 13:42    [22284729]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

Кстати сказать, а наличие JSON Schema тебя не смущает? Странные у тебя рассуждения.

PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.

Я пробовал Json-schema. К сожалению мне не удалось сделать проверки достаточно строгими.
Тоесть у меня получилось проверять только те сущности которые были декларированы. А новые
почему-то успешно проходил валидацию хотя и не должны-быть по идее.

XML схема тоже не сказать что бы больно навороченный язык. Но неизвестные элементы и
атрибуты он не пропускает.
22 фев 21, 13:58    [22284736]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Щас не хватает времени. Но я до пятницы проверю. И если это правда - то создам топик на тему
Xml-Schema vs Json-Schema. Who is stricter?
22 фев 21, 14:25    [22284749]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Dima T

Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное.

json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним
на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски
что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект
в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть
как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer
при запросах к толстым документам.

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.
22 фев 21, 20:56    [22284903]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним
на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски
что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект
в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть
как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer
при запросах к толстым документам.

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.
22 фев 21, 21:07    [22284907]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.

Ты чуть выше сказал, что придётся грузить сразу объект в 16 Гб. Из этого я сделал такое предположение.
22 фев 21, 21:18    [22284915]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.

Ты чуть выше сказал, что придётся грузить сразу объект в 16 Гб. Из этого я сделал такое предположение.

Да. Все верно. Я-же написал - если "делать запросы" к содержимому. Типа SELECT узлы WHERE какое-то свойство
e.t.c.
22 фев 21, 21:28    [22284922]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
>
PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.
==
Стразу 3 ошибки
- xml не плох, он многословен
- на фронте нет json, это формат передачи данных
- сегодня уже он шарпе, java и REST API а не JS.
Не нужно их противопоставить вообще.
23 фев 21, 09:56    [22285031]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Любые попытки заменить XML на Json сегодня сродни попыткам например заменить реляционные DBMS на NoSQL
системы. В частных случаях это срабатывает но в общем - мы теряем. Теряем возможности и смыслы которые были
заложены создателями изначально.
23 фев 21, 11:21    [22285056]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3722
вы упорядочьте сначала, зачем создавался формат, как позиционировался и как используется.

начнем (далее все может быть не верно)
xml создавался как формат обмена данными вне зависимости от бд и структуры.
json - для хранения небольших данных
23 фев 21, 11:42    [22285062]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
Ну и зачем ты это написал?

Это пример того, что когда доходит до дела вместо цсв парсера имеем какие-то костыли на коленке, а не полноценный парсер. Если уж костылить, костылили бы лучше тсв.
23 фев 21, 12:54    [22285086]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
Почему он станет недоступен?

У автора этого движка спроси, почему он не поставил пром.парсер. И у авторов екселя заодно, почему там не делали импорт как в либре.
6 тысяч CSV-парсеров

Сколько из них вменяемые, а сколько - лабы и стрёмные велики без колёс?
mayton
А хотя-бы и не было. Неужели сам бы не написал?

Чтобы сделать парсер, надо реализовать посимвольное вычитывание данных, что заметно геморнее, чем делать split, которого нету только у сишников и отсталых.

Сообщение было отредактировано: 23 фев 21, 12:52
23 фев 21, 12:58    [22285088]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Как в данной теме смешались стандартизация и человекочитаемость? Это две разные мои
мысли, которые зачем-то кто-то спутал.

Ради бога. Деайте тсв. Развеж я вас остановлю?
23 фев 21, 12:59    [22285089]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
crutchmaster

Чтобы сделать парсер, надо реализовать посимвольное вычитывание данных, что заметно геморнее, чем делать split, которого нету только у сишников и отсталых.

Это ... даже несеръезно. При чем здесь split? И при чем здесь какие-то "осталые" сишники?
23 фев 21, 13:06    [22285093]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
(подозрительная ссылка!) https://github.com/search?q=csv parser

Смотрим.
https://github.com/ben-strasser/fast-cpp-csv-parser/blob/master/csv.h
Оопота на 1к строк. Ну да, мог бы и сам на коленке сделать.

https://github.com/mholt/PapaParse/blob/master/papaparse.js
Тормозная херня на 2к строк, где делают csv += _delimiter;

Ну да, чо бы не написать парсер на коленке. Вместо
str.split("\n").map(row=>row.split("\t"))

И развернуть escape, для случая, когда файл влазит в память.
23 фев 21, 13:09    [22285096]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
И при чем здесь какие-то "осталые" сишники?

Я не говорил, что сишники отсталые.
23 фев 21, 13:10    [22285098]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
(задумчиво)

Если рассматривать json как способ экспорта или импорта данных - то скорее нет, чем да.

Если речь идёт про таблицы, то не "скорее", а решительно нет, не о чём тут думать.
23 фев 21, 13:17    [22285105]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2242
mayton
Ради бога. Деайте тсв. Развеж я вас остановлю?

Ну вдруг у тебя есть весомые аргументы против и я что-то упускаю из вида.
23 фев 21, 13:20    [22285107]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
(руки вверх)

Всё ты победил! Делай на сплитах! Мне просто эта тема не интересна.
23 фев 21, 13:23    [22285110]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Если тезисно: каких смыслов больше в XML по сравнению с JSON?
4 мар 21, 10:42    [22289464]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Если тезисно: каких смыслов больше в XML по сравнению с JSON?

Архитектурно, на этапе создания стандарта в XML были заложены namespaces.
Это позволяло в 1 документ включать разные расширения таким образом что твой парсер
может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно. Или как-то можно но наверное с потерей смыслов.
Namespaces имеют полезное применение в Java frameworks в части конфигураций.

Трансформация документов. Ты можешь создать XML-содержимое которое обработается
браузером и к нему применится XSLT скрипт который адаптирует контент к HTML со стилями
например. Эта фича редко применялась. В основном на back-end, хотя IE 100% ее поддерживал
в 2000 годах точно. Сам скрипт должен быть доступен по http:// или file:// чтобы двигатель
трансформации его увидел. По аналогии с #include в C++.
Тоесть - никакого JavaScript а просто трансформация языком очень высокого уровня. На
эту тему у нас даже есть подфорум https://www.sql.ru/forum/xml . Я немнжко не в теме
т.к. последний раз работал с этим очень давно и многое поменялось. Но вот что я помню - то рассказал.

Обработка инструкций. Сейчас насколько я помню эта фича отключается из-за безопасности. Но вкратце,
в хедер XML можно включать команды операционки например. И они по идее должны исполнятся в момент
открытия файла. Как это полезно исопльзовать - ХЗ но стандарт есть.

Синтаксические удобства для публикации комментариев и блоков не-структурированного содержания (CDATA).

XML также взят на вооружение в науке. В частности под него разрабатывались различные схемы описания
доменов в химии и астрономии (щас пруфы не могу найти к сожалению но где-то в стандартах XMLSchemas).

Это всё - смыслы.

Тоесть если подытожить - то XML является наиболее строгим описательным способом для данных и знаний.
Для JSon повторить подобное наверное тоже возможно - но придется придумывать НАД-стандарты сверху
над простым и примитивным JSon. В рамках одной рабочей группы или проекта это возможно, но если
топить за интеграцию между проектами и между кастомерами - то лучше наверное XML. Так проще. И меньше
будет технических споров и недо-пониманий на этапе простого согласования формата RPC например.
4 мар 21, 11:18    [22289492]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
твой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?

Posted via ActualForum NNTP Server 1.5

4 мар 21, 13:49    [22289584]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
твой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?

Давай подумаем, как это будет с точки зрения парсера. Может быть я и не прав. Пускай брейнштормит шторм.

Сообщение было отредактировано: 4 мар 21, 13:52
4 мар 21, 13:59    [22289595]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

mayton
твой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?

Эээ... это в XML как в С++. Две функции readFile() находятся в разных неймспейсах. И ты видишь только свой
неймспейс. Если разные неймсейсы в XML совпадают по названию, то это тоже решается. В заголовке XML
описываются названия NS и их URL, которые и являются их (NS) глобальными идентификаторами. Как тут:

namespace myStd = std;
4 мар 21, 14:00    [22289598]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
как это будет с точки зрения парсера.

Прочитал название значения, не смог распознать название - пропустил всё до конца значения.

Точно так же в XML: прочитал открывающий тэг, не смог его опознать - пропустил всё до
закрывающего тэга.

Где проблема?

Posted via ActualForum NNTP Server 1.5

4 мар 21, 14:07    [22289605]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
как это будет с точки зрения парсера.

Прочитал название значения, не смог распознать название - пропустил всё до конца значения.

Точно так же в XML: прочитал открывающий тэг, не смог его опознать - пропустил всё до
закрывающего тэга.

Где проблема?

Нет декларативности. В случае с явным указанием namespace - читающий (допустим это человек) может
в документе глазами увидеть доменную модель которая доступна для интерпретации.

В случае хардкодом этой логики в тело XML/Json парсера - эта информация для читающего неизветна. И ему надо
будет консультироваться с L3 например чтобы понять почему тег <credit:amount> или "credit_amount" не виден в системе.

Сообщение было отредактировано: 4 мар 21, 14:06
4 мар 21, 14:13    [22289613]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Uridian
Member

Откуда: Lobnya
Сообщений: 235
mayton
<...> переименовать расширение в СSV
<...>И это Excel должен открыть как табличку.

Открыть-то он откроет, только при этом произойдёт потеря/искажение информации. Попробуйте открыть Excel-ем CSV-файл с таким содержимым:
0009876540;123456789e123
.
4 мар 21, 14:15    [22289616]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
читающий (допустим это человек) может в документе глазами увидеть

Ни XML, ни JSON не предназначены для чтения человеком.

Posted via ActualForum NNTP Server 1.5

4 мар 21, 14:18    [22289618]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Насколько я помню, в Excel есть мастер импорта. И там для каждого поля можно явно указать тип данных.

Проблема неверной интерпретации целых/вещественных с плавающей точкой в Excel была давно. Она стара
как мир. И о ней вобщем осведомлены все бизнес-пользователи которые имеют опыт.
4 мар 21, 14:18    [22289619]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
читающий (допустим это человек) может в документе глазами увидеть

Ни XML, ни JSON не предназначены для чтения человеком.

Ну.. некоторые образцы исходного кода я тоже хотел-бы никогда не видеть. Что поделаешь. Такова суровая доля
всех кто зашел в этот форум. Толи со входа L3 толи L1.

Вопрос human-readablility я оставляю для нас открытым. И я почти готов согласится что читать его скорее неудобно
чем удобно. Но ведь меня спросили о других вещах.
4 мар 21, 14:22    [22289622]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton,

А что это за уровни L1 - L3? :)
4 мар 21, 14:24    [22289623]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Ну L3 - это мы с тобой. А L1 - это примерно девочка с колл-центра которая первая реагирует например
что тебе не выдали кредит по технической ошибке в системе. Неважно вобщем. Просто разные уровни
It-подготовки.
4 мар 21, 14:28    [22289626]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3722
L0 - девочка-блондинка с колл-центра
4 мар 21, 14:52    [22289640]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...


Это всё - смыслы.

Спасибо за расширенный ответ.

Могу добавить, что ещё в XSLT есть скрипты. А текст (сообщение) не обязательно
неструктурированный CDATA. Текст в XML может быть структурирован — содержать
теги. Где-то даже для математических формул я встречал XML схему.

Сообщение было отредактировано: 4 мар 21, 15:20
4 мар 21, 15:26    [22289668]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Я думаю все видели прикол когда внуть JSON строки вставляют другой Json документ. Выглядит - ужасно.
Происходит эскейпинг служебны символов. Бекслеши при этом удваиваются. Пока все в порядке. Но если
предположить что какой-то кодер-умник рекурсивно 64 раза завернет 1 документ в документ контейнер
по правилам JSon. То мы получим количество слешей близкое к шахматной легенде. Это когда мудрец
попросил награду в виде зернышек на шахматной доске где каждая клетка имела геометрическую прогрессию
количества зерен от предыдущей.
4 мар 21, 15:46    [22289692]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921
mayton
Я думаю все видели прикол когда внуть JSON строки вставляют другой Json документ.

Лично я - нет. Я не смотрю результаты работы программ, написанных клиническими кретинами и
вообще стараюсь ими не пользоваться.

PS: То же самое произойдёт если те же самые кретины перекодируют русскую строку из ANSI в UTF-8 64 раза подряд. И вот это я реально видел. Но что это доказывает? Что обезьянам нельзя давать гранаты или подпускать к программированию?..

Сообщение было отредактировано: 4 мар 21, 15:49
4 мар 21, 15:51    [22289700]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Нет. Просто забавное наблюдение. Вот в Xml можно вот так написать. Документ в документе.

<?xml version="1.0"?>
<root>
 <message>Продается Слон весом &gt; 3 тонн. Фирма &quot;Слон &amp; Слон&quot;</message>
 <![CDATA[ 
   <?xml version="1.0"?>
    <root>
     <message>Продается Слон весом &gt; 3 тонн. Фирма &quot;Слон &amp; Слон&quot;</message>  
    </root>
 ]]>
</root>
4 мар 21, 16:06    [22289720]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Вот в Xml можно вот так написать. Документ в документе.

То же самое можно сделать и в JSON. Ты будешь делать далеко идущие выводы на основании
кривого использования генератора документа или бага в нём?..

Posted via ActualForum NNTP Server 1.5

4 мар 21, 16:15    [22289734]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Это забавное наблюдение. Не бери близко к сердцу.
4 мар 21, 16:34    [22289747]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
И с точки зрения Xml-parser все узлы (Nodes) делятся на основные два под-типа. Elements и Attributes.
Каким образом это сделать в Json? Возможно и получится, но будет еще один уровень смыслов.
Сам JSon документ вследствие этого станет громоздким.

Есть еще другие типы Nodes (комметарии и секции неформатированных данных) но мы о них уже
говорили.
5 мар 21, 18:42    [22290408]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Каким образом это сделать в Json?

Это не надо делать в Json. Лучше задаться вопросом: "а назачем в XML несколько способом
приготовить кошку". https://ru.wikipedia.org/wiki/JSON#Синтаксис - там как раз показано
соответствие между JSON и XML.

Posted via ActualForum NNTP Server 1.5

5 мар 21, 18:59    [22290419]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov. А куда делся элемент <person> ? А что вы будете делать когда у <firstName> вдруг появятся атрибуты?

Я-же говорю. Вы можете придумать массу частных случаев. Но в обобщённом варианте процесс преобразования
XML->JSON сопряжен либо с потерей смыслов либо с созданием еще одного слоя JSON тегов которые будут обязаны
нести семантику Xml чтобы не допускать потерь.
5 мар 21, 19:07    [22290422]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
А куда делся элемент <person> ?

Ушёл в умолчание. Пуристы могут переписать пример как
"person": {
   // и тут вся остальная портянка
}


mayton
А что вы будете делать когда у <firstName> вдруг появятся атрибуты?

То же самое, что и в случае когда в C++ переменную понадобится запихать сразу несколько
значений: сделаю её структурой.

Posted via ActualForum NNTP Server 1.5

5 мар 21, 19:13    [22290427]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Мы ходим по кругу. Ладно. Оставайтесь при вашем мнении.
5 мар 21, 19:45    [22290444]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Оставайтесь при вашем мнении.

Естественно останусь. Кстати, этим мнением является "XML полная хрень, которую надо
обходить за километр, да и JSON не лучше, но хотя бы проще".

Posted via ActualForum NNTP Server 1.5

5 мар 21, 19:48    [22290446]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

mayton
Оставайтесь при вашем мнении.

Естественно останусь. Кстати, этим мнением является "XML полная хрень, которую надо
обходить за километр, да и JSON не лучше, но хотя бы проще".

А что по вашему лучше?
5 мар 21, 19:53    [22290450]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

petrav
А что по вашему лучше?

Всё, на что есть точная спецификация или синтаксическая диаграмма. Я в основном использую TLV.

Posted via ActualForum NNTP Server 1.5

5 мар 21, 20:12    [22290460]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
У сишников нет веб проектов и надобности пересылать данные.
Поэтому им xml, json как пятая нога.
5 мар 21, 20:21    [22290465]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
PetroNotC Sharp
и надобности пересылать данные.

Oh, really? Щас тебя побьют :)
5 мар 21, 20:23    [22290468]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dima T
Member

Откуда:
Сообщений: 15689
PetroNotC Sharp
mayton,
У сишников нет веб проектов и надобности пересылать данные.
Поэтому им xml, json как пятая нога.

Отчасти прав, сишники пересылают байты, код на С/С++ это обычно транспортный уровень
5 мар 21, 20:57    [22290484]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Dima T,
+1
Со стороны то всегда виднее)
5 мар 21, 23:06    [22290539]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
Веб это гетерогенная система.
https://ru.m.wikipedia.org/wiki/Гетерогенная_система
Данные из одного Мира пересылаются в Другой.
Поэтому в java прогеры наоборот повернуты на xml/json.
Недавно один чел сериализовал в бд классы в виде json и просто не понимал что можно без него.
5 мар 21, 23:20    [22290544]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov
Я в основном использую TLV.

Ну ты сравнил монокль и радиотелескоп.
6 мар 21, 13:39    [22290659]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
В отличии от твоего он имеет стандарт.
6 мар 21, 14:40    [22290671]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Можем поговорить о трабл-шутинге. О том как наблюдать TLV формат невооруженным глазом.
И как решать общие вопросы гетерогенного обмена данными. Как то: last/big endian. Разрядность
целого числа. И прочее.

Тоесть о наборе best-practices, которые будут сопровождать разработчика если он вдруг решил
работать с TLV.

Я-бы стравнил TLV с EBML, Protobuf, Apache Thrieft, EXI, и с бинарным форматом который используется
в MongoDb для представления документов

- по количеству фичей
- по удобству изменения сопровождения кода

и вывел-бы некое сравнительное заключение.

Компактность и экономию места тоже можно включать в метрики.
6 мар 21, 15:55    [22290684]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Можем поговорить о трабл-шутинге.

А можем и не говорить, а просто вспомнить, что все вышеупомянутые гетерогенные системы
обмениваются своими текстовыми посланиями поверх (внезапно!) двоичного IP. То есть
согласование разрядности и конечности не является проблемой и заслуживает ровно одну
строчку в спецификации протокола "все числа передаются в network format".

Posted via ActualForum NNTP Server 1.5

6 мар 21, 16:33    [22290690]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Но это слова. Спека.

А как вы практически решаете эти задачи? Должен быть API для декларативного описания месседжа.
И должен быть API для приведения байтов и битов в "network format".
6 мар 21, 17:38    [22290704]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
И должен быть API для приведения байтов и битов в "network format".

Так у IP, например, он есть: htonl(), htons(). У меня в проектах PushInt()/GatherInt().

Posted via ActualForum NNTP Server 1.5

6 мар 21, 17:41    [22290707]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

mayton
И должен быть API для приведения байтов и битов в "network format".

Так у IP, например, он есть: htonl(), htons(). У меня в проектах PushInt()/GatherInt().

И после такого ты возмущаешься на тот «мой» plain-ini формат?
6 мар 21, 18:44    [22290725]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
   ; Название раздела 1
; ==================

1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
1.3 ; Описание значения 3.

; Название раздела 2
; ==================
Это не ini)))
Забудь это слово.
Детский сад какой то.
6 мар 21, 19:14    [22290734]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

mayton
Каким образом это сделать в Json?

Это не надо делать в Json. Лучше задаться вопросом: "а назачем в XML несколько способом
приготовить кошку". https://ru.wikipedia.org/wiki/JSON#Синтаксис - там как раз показано
соответствие между JSON и XML.

Я точно не знаю чем руководствовались разработчики XML. Но когда я разрабатывал структуру
XML документов, я, конечно, сталкивался с выбором: атрибут или подэлемент? И всегда я
руководствовался вопросами читабельности результирующих документов. Сравним:

XML:

<employee id="123" departmentId="456" roleId="789" status="active">
<firstName>Иван</firstName>
<lastName>Иванович</lastName>
<surName>Иванов</surName>
</employee>

JSON:

{
"person" : {
"id": 123,
"departmentId": 456,
"roleId": 789,
"status": "active",
"firstName": "Иван",
"lastName": "Иванович",
"surName": "Иванов"
}
}

Очевидно XML и лаконичнее, и нагляднее нежели JSON. Даже просто по количеству технических
символов разметки выигрывает XML.

Просто мальчикам и девочкам, которые пришли в Web, с трудом освоили JavaScript… Им сложно
задумываться: а что выбрать — атрибут или подэлемент? А синтаксис JS они худо бедно освоили.
6 мар 21, 20:20    [22290747]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Не пишите ерунду о том что JSON многословнее XML.
6 мар 21, 20:58    [22290761]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav


<employee id="123" departmentId="456" roleId="789" status="active">
<firstName>Иван</firstName>
<lastName>Иванович</lastName>
<surName>Иванов</surName>
</employee>

Если employee представляет собой плоскую (plain) структуру наподобие SQL datarow
то все элементы могут быть атрибутами. Типа:

<employee id="123" departmentId="456" 
    roleId="789" 
    status="active" 
    firstName="Иван"
    lastName="Иванович"
    surName="Иванов" />


Ну я-бы та сделал. Кортеж. Или tuple.

Если какая-то часть employee расширяется на коллекцию элементов или имеет иерархическую
структуру атомов - то мы можем сделать XmlElement с дочерними элементами чтобы подчеркнуть
вложенность.

Пример с коллекцией.

<employee id="123" departmentId="456" 
    roleId="789" 
    status="active" 
    firstName="Иван"
    lastName="Иванович"
    surName="Иванов" >
   <phoneList>
      <phone>+1 555 123 123</phone>
      <phone>+1 777 123 123</phone>
   </phoneList>
</employee>


Пример с структурой подчинения. Сотрудники №124 и 125 подчиняются Иванову.

<employee id="123" departmentId="456" 
    roleId="789" 
    status="active" 
    firstName="Иван"
    lastName="Иванович"
    surName="Иванов" >
   <employee id="124" ...../>
   <employee id="125" ...../>
</employee>
6 мар 21, 21:14    [22290768]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
И должен быть API для приведения байтов и битов в "network format".

Так у IP, например, он есть: htonl(), htons(). У меня в проектах PushInt()/GatherInt().

Данный ответ я считаю неполным. Он вобщем не отвечает на мой вопрос. А мой вопрос заключается в том,
насколько много вам нужно сделать действий чтобы описать некую бинарную (гетерогенную!) структуру. Сами по себе
winsock API calls не являют собой решение этой проблемы. Они - просто некий промежуточный инструмент. И то находящийся
строго в слое серверного программирования.

Какие API calls вы будете вызывать в браузере?
6 мар 21, 21:19    [22290769]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
Отложи в сторону браузер. Нет его в плюсах проектов.
Вы в плюсах описываете структуру и в дельфи её читаете.
Всё.
6 мар 21, 21:58    [22290785]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Как будет угодно.

Это очень интересная позиция. Сводить спор по XML/JSON к TLV а потом
в конечном счете к тому что это С++нику не надо.

Зачем тогда вообще спор был?
6 мар 21, 22:05    [22290793]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
mayton,
Я тебе объяснил почему xml/json не интересны сишникам.
Я когда им был тоже без них обходился.
Писал в файл бинарник метку размер данные.

Сообщение было отредактировано: 6 мар 21, 22:06
6 мар 21, 22:12    [22290797]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Как будет угодно.

Это очень интересная позиция. Сводить спор по XML/JSON к TLV а потом
в конечном счете к тому что это С++нику не надо.

А зачем же тогда в Qt всякие Xml, Json и прочие HttpRequest? :)
6 мар 21, 22:19    [22290799]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Для настроек (файлов) молодой человек.
А request не нужен. Ну или можно им курс валюты на сайте спросить.

Сообщение было отредактировано: 6 мар 21, 22:48
6 мар 21, 22:55    [22290808]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
bk0010
Member

Откуда:
Сообщений: 5058
petrav
А зачем же тогда в Qt всякие Xml, Json и прочие HttpRequest? :)
Потому что некоторые нехорошие люди ничего, кроме Web API для взаимодействия не предусмотрели, хотя вполне можно было работать через базу.
7 мар 21, 15:27    [22290906]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
bk0010
petrav
А зачем же тогда в Qt всякие Xml, Json и прочие HttpRequest? :)
Потому что некоторые нехорошие люди ничего, кроме Web API для взаимодействия не предусмотрели, хотя вполне можно было работать через базу.

База решает свой диапазон задач. И не решает например message queues между узлами вычислительной сети.
7 мар 21, 20:07    [22290957]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav,
     ; Название раздела 1
; ==================

1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
1.3 ; Описание значения 3.

; Название раздела 2
; ==================
Это не ini)))
Забудь это слово.
Детский сад какой то.

Да, не ini. Но я же просил придумать название формата. Ты ничего не
предложил.
Модератор: не забывай об этикете


Сообщение было отредактировано: 8 мар 21, 23:30
8 мар 21, 09:31    [22291044]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Ну очевидно же. Твой собственный формат никому не интересен.
Настройки.мойформат
Не подходит?
Или боимся русских букв и более 8 символов?
))))
8 мар 21, 10:09    [22291049]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Мне тоже интересна. Только с инженерами. Без оффтопов.
Ты кто?
8 мар 21, 12:05    [22291096]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
xamelione25, у тебя еще есть какие-то вопросы по теме?
8 мар 21, 18:35    [22291238]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34688
xamelione25,

f1.open("log.txt", ios_base::trunc);

=>
f1.open("log.xls", ios_base::trunc);
9 мар 21, 15:18    [22291736]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
Все форумы / C++ Ответить