powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Заменить запись в файл с txt на xlsx
150 сообщений из 150, показаны все 6 страниц
Заменить запись в файл с txt на xlsx
    #40046614
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите сделать так чтобы запись происходила не в txt, а в Excel

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
#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;
}

...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046623
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В простейшем случае ты можешь переименовать расширение в СSV

Код: plaintext
1.
f1.open("log.csv", ios_base::trunc);



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

И это Excel должен открыть как табличку.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046625
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*.xslx это xml в zip-архиве. Пишешь в xml, затем пакуешь.
Структура xml тут описана .
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046626
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xamelione25f1.open("log.txt", ios_base::trunc);
Вот в этой строчке надо ".txt" заменить на ".xlsx".

Ну или читать спецификацию xlsx и переделывать весь вывод согласно ней.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046627
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Dima T,

mayton

гляньте тут, я там писал более подробнее о проблеме с которой я столкнулся
Модератор: Нет. Мы не будем ходить в другие форумы. Это - модераторский совет.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046638
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xamelione25,

Записывай всё в tsv и не делай себе голову. \t - разделитель полей, \n - строк. Табы в строках меняй на что-нибудь.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046643
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster, Dimitry Sibiryakov, mayton,

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

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

ну например вот так
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046677
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xamelione25,
В коде надо?
- вкл записи макроса
- выделить
- посмотреть полученный код макроса.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046689
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
xamelione25,

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

Никогда не понимал этот формат. Табы на просмотре текста выглядят ужасно. Сложно
понять - где пробел в данных а где разделитель. Чтоб трабл-шутить нужно смотреть
вооруженным глазом через hex-editor или среду с подсветкой управляющих символов.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТабы на просмотре текста выглядят ужасно.

Отлично выглядит если
1) Данные примерно одинаковой длины;
2) Длина не близка в кратности таба.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046695
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
crutchmaster
xamelione25,

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

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

Не надо фигней заниматься, открыл в экселе и смотри. CSV намного хуже, где разделитель сам печатный символ, который может содержаться в данных.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046698
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот за что люблю наш форум... Архитекторы сцепились за сплиттер.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046801
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу. Если сплиттер == запятая, все нормально экранируется кавычками. И сами кавычки тоже.

Код: plaintext
1.
2.
3.
4.
"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"



Ну а табулятор - невидимка. Вот такие дела.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046847
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

>Ну а табулятор - невидимка. Вот такие дела.
Та мы туда и не смотрим)))
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046887
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вот за что люблю наш форум... Архитекторы сцепились за сплиттер.

Ты теоретик, а мы практики, нае... с этим
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046890
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы, практики наверное ничего больше 1 Гига в CSV не грузили в БД.

А я - грузил. И в Excel такой файл не открывался. Вот такие пироги.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046894
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вы, практики наверное ничего больше 1 Гига в CSV не грузили в БД.

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

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

У меня трижды в день качается 6-8 Гб, превращаю в БД размером 2 Гб, на все 40 минут уходит.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046896
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.... 8 Гигабайт за 40 минут. Это приблизительно 204 Мб в минуту или 3.4 Мб в секунду.

Медленно-ва-то... Для современных носителей и сетей. Хотя чорт его знает. Вангую что I/O небыстрый.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046897
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xamelione25,

автор ну что? У тебя получилось CSV открыть в Excel?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046898
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вангую что I/O небыстрый.

Небыстрый FoxPro, на котором все написано. Но производительность всех устраивает
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046899
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
да, открылся...
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046901
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фокс - хорошая штука. Уважаю. У них интересный тип индекса был. Какой-то там rush.
И на сравнительных тестах если сравнивать dBase vs Fox, то последний выигрывал когда
были запросы специфичны к этому рашу. Интересно Microsoft перенёс это ноу-хау в MS-SQL?

Кто есть MS-SQL-щики? Проясните plz.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046902
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
У них интересный тип индекса был. Какой-то там rush.

Без детализации.
Имхо, маркетинговый шит.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046909
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Фокс - хорошая штука. Уважаю. У них интересный тип индекса был. Какой-то там rush.
И на сравнительных тестах если сравнивать dBase vs Fox, то последний выигрывал когда
были запросы специфичны к этому рашу. Интересно Microsoft перенёс это ноу-хау в MS-SQL?
Кто есть MS-SQL-щики? Проясните plz.
Технология Rushmore. То ли сжатые индексы, то ли bitmap (не помню). Подробности тут , искать слово Rushmore.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046910
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.. точно.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046916
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bk0010
Технология Rushmore. То ли сжатые индексы, то ли bitmap (не помню). Подробности тут , искать слово Rushmore.

В том-то и дело, что подробностей нигде нет. Ни описания реализации, ни методики применения, одни общие слова.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046919
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на фоксклубе же есть для понимания
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046925
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложение битмапов полученных с двух/нескольких индексов для последующей выборки записей.
Это использовали все кому не лень, включая Interbase.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046928
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По смыслу похоже на Bitmap Index. Однако фраза "это использовали все кому не лень" - слишком сильная фраза.
Мне не нравится квантор "все". Это слишком идеализирует наш мир. Скорее использовали те кто хотел.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046932
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откуда в FoxPro битмап индексы?
(по крайне мере 2.5, 2.6, дальше уже Visual FoxPro)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046934
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о VFP речь и идет
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046935
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рашмор - не в индексах, а в способе использования сразу нескольких.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046968
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Табы на просмотре текста выглядят ужасно.

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

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

Это замечательный формат. Он преобразовывается в массив массивом буквально на раз-два. Делаешь сплит по \n, потом пробегаешься по тому, что вышло и делаешь сплит по \t. Всё. С csv - чехарда экранированием кавычек и "," / ";", которых в тексте, как правило, навалом, в отличии от табов.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046969
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если сплиттер == запятая, все нормально экранируется кавычками. И сами кавычки тоже.

Никак она не экранируется. Парсеру надо бегать по строке и помнить, была там кавычка или нет. Еще кавычку в кавычках надо экранировать и вырезать по кавычке в начале/конце строки, когда перегоняешь из csv. В tsv экранируются только непечатные символы при записи, которые и так должны быть экранированы по всем правилам здравого смысла.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046972
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
В tsv экранируются только непечатные символы при записи, которые и так должны быть экранированы по всем правилам здравого смысла.
... но не обязаны: возникает необходимость "переделывать" \t, \r, \n и прочие "радости" в полях записи.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046977
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Фокс - хорошая штука. Уважаю. У них интересный тип индекса был. Какой-то там rush.
И на сравнительных тестах если сравнивать dBase vs Fox, то последний выигрывал когда
были запросы специфичны к этому рашу. Интересно Microsoft перенёс это ноу-хау в MS-SQL?

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

Рашмор по сути это построение плана выполнения запроса. Официальных заявлений не было, а по сплетням что-то из фокса позаимствовали для MSSQL
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40046979
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
но не обязаны

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

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

Какие "радости"? Непечатные? Их в любом случае надо экранировать. С печатными никаких проблем нет в принципе. Кроме \n\t следить не зачем. С запятыми еще натрахаешься, когда тебе с ru локали будут вещественные числа переводить в строку с запятой вместо точки и при парсинге ждать запятую.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047012
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Если у тебя будут \r\n в строках их в любом случае придётся переделывать.
Подчеркнул.
Урежьте, в общем, квантор всеобщности.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047016
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Урежьте, в общем, квантор всеобщности.

А как твой csv читать, если там в значениях /n ?? Из-за такого вот говнолепства потом ломаешь голову.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047056
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
mayton
Если сплиттер == запятая, все нормально экранируется кавычками. И сами кавычки тоже.

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

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

https://tools.ietf.org/html/rfc4180
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   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 особенно в тех случаях когда нам это
ничего не стоит с точки зрения конфигурации.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047078
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
А как твой csv читать, если там в значениях /n ??
Я за csv не агитировал.
Я утверждал (и утверждаю), что tsv не является "серебрянной пулей".
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047415
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Сложность парсера не имеет значения. Это его, парсера responsibility.

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

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

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

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

Код: sql
1.
2.
3.
4.
5.
[csv]
1,2
"1
2","3
4"[/csv]

12"12""34"

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

Не из чего выбирать. \t, \n и escape \\ \t \n объективно лучше. Хочешь - меняй таб на ";" и смотри. Если твой редактор так не может - это его responsibility.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047417
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Я утверждал (и утверждаю), что tsv не является "серебрянной пулей".

tsv - это лучший вариант. У вас не может быть против этого аргументов. Вы можете сказать, что парсеру надо делать замену для escape, но csv тоже надо менять две кавычки на одну. В остальном парсер tsv - элементарен, формат проще и надёжнее, чем csv. Легко просто и без сраных танцев делается, например, подсчёт строк или столбцов в строке.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047420
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для записи TSV/CSV файлов редко используют специализированные оболочки, просто пишут как текстовый файл. В результате получается рабочий код, который стабильно работает пока оператор не заведет что-то нестандартное, например наименование товара начнет с двойной кавычки и начинается веселье: полдокумента почему-то не грузится, т.к. в CSV можно обрамлять перенос строк.
В TSV тоже может быть подобное, хоть табуляция непечатный символ, но он копипастится, и этим способом попадает в БД, но тут проблемы только в одной строке, следующие грузятся, и источник проблемы проще искать.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047428
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Для записи TSV/CSV файлов редко используют специализированные оболочки

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

Ничего не копипастится. Понятие структурированные данные и набор чего-то кривыми руками в редактор ортогональны. Там данные мало того, что будут не правильно структурированы, так там еще атрибуты записей никогда не будут соответствовать своему домену.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047433
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Ну как в нашем тысячилетиии без ГУИ?)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047454
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T

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

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

Я уж не говорю про то, что если проблемы в одной строке, то скорее всего вы эту ошибку никогда не найдёте.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047476
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Dima T

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

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

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

Это не мы. Мы выгрузку из той БД получаем с наездом что наша прога их файлик грузить не хочет.
Ищется элементарно, если знаешь как в hex-редакторе посмотреть.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047481
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

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

[src]
12"12""34"


Ну и зачем ты это написал? Это доказательство в стиле Паниковского.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047484
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
mayton
Сложность парсера не имеет значения. Это его, парсера responsibility.

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

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

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

А хотя-бы и не было. Неужели сам бы не написал? Стандарт описан. Несложный.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047493
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Копипастится и попадает в БД? Прикольно вы работаете. LOL.

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

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

Выделяем табличку и давим Ctrl+C
1234
Вставляем что получилось Ctrl+V, а получился TSV
Код: plaintext
1.
2.
1	2
3	4


Опубликовав это сообщение я сохранил табуляцию в БД сайта sql.ru :)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047495
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
crutchmaster
пропущено...

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

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

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

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

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

Давайте лучше поговорим про строки и Юникод. А лучше вообще разработаем свой класс строки. Ведь С++
это язык программирования созданный что бы писать свои классы строк. Я и название придумал: JaString.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047500
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу.

Проблема как раз в продвинутости парсеров, они слишком много нарушений прощают.
Пример вышеописанной проблемы с кавычкой. Сохрани текст ниже в файл CSV и открой его экселем
Код: plaintext
1.
2.
ООО "Рога и копыта;1
"ООО Рога и копыта;2
ООО Рога и копыта;3
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047502
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
petrav
Копипастится и попадает в БД? Прикольно вы работаете. LOL.

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

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

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

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


Опубликовав это сообщение я сохранил табуляцию в БД сайта sql.ru :)
Криминала нет? А потом в БД данные не грузятся? Ну не знаю…

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

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

И вот ещё что… Если ошибка только в одной строке, то тут возникает нюанс. В зависимости
от того как построен парсер может случиться ситуация когда ошибка внешне станет
незаметной если ошибка только в одной строке. False negative страшная вещь.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047504
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Криминала нет? А потом в БД данные не грузятся? Ну не знаю…

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


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

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

Ошибка будет незаметна. Лишняя табуляция сдвинула последующие поля в строке
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047505
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Далее… Нужно использовать качественную библиотеку в которой исключены сбои из-за
каких-то нюансов. Всё должно быть экранировано и т.д. Возможно она же (библиотека)
проверяет корректность данных: говорим ей непечатных символов, кроме пробелов, быть
не должно.

Теоретически да, а практически если у тебя десятки-сотни разных источников этих выгрузок, то ты просто устанешь долбить всех писателей чтобы писали правильно, плюнешь и будешь парсить лишь бы парсилось.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047517
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
mayton
6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу.

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

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

https://tools.ietf.org/html/rfc4180
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
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 - максимально толерантен
к исходным данным.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047519
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

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

Зачем?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047520
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотрю в dbForge для MySql
настройки выгрузка-копирование в CSV -
хочешь - в кавычках все,
хочешь - только текст
хочешь - все поля без кавычек
разделитель настраивается
и все нормально работает

надо понять что CSV должен быть настраиваемым, как загрузка так и выгрузка
и TSV - частный случай CSV
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047522
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕМНИП при импорте произвольных пользовательских данных в Excel - есть мастер
импорта который позволяет указать различные границы колонок и сплиттеры.
Есть даже вариант испорта fixed-column. Это тесно связано со старыми форматами
dbms где records имели одинаковый бинарный размер. Щас такое уже не катит
но лет 20 назад можно было взять dbBase/FoxPro датафайл. Отрезать ему голову
и спокойно заимпортировать такой файл в Excel.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047524
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
ЕМНИП при импорте произвольных пользовательских данных в Excel - есть мастер
импорта который позволяет указать различные границы колонок и сплиттеры.
Есть даже вариант испорта fixed-column. Это тесно связано со старыми форматами
dbms где records имели одинаковый бинарный размер. Щас такое уже не катит
но лет 20 назад можно было взять dbBase/FoxPro датафайл. Отрезать ему голову
и спокойно заимпортировать такой файл в Excel.

Записи в DBF фиксированного размера, а числа с датами хранятся в сериализованном виде. Хотя непонятно зачем это делать если эксель и так их открывает.
Но нынче фокус может не пройти, т.к. добавились типы которые хранятся без сериализации (int, datetime)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047578
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или без dbf. Вот такие позиционные форматы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
$ 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 
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047593
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, нынче json и строки в utf8 наше всё. Даже MS с этим согласен. Зачем старье ворошить? Его надо хоронить, и чем быстрей, тем лучше.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047596
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наше всё это православный XML и XML схемы.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047597
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Наше всё это православный XML и XML схемы.

MS уже так не считает, это тоже старье
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047598
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
mayton, нынче json и строки в utf8 наше всё. Даже MS с этим согласен. Зачем старье ворошить? Его надо хоронить, и чем быстрей, тем лучше.


(задумчиво)

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

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

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

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

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

Но в Рест-сервисах речь-бы не шла о 8Гб.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047599
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Наше всё это православный XML и XML схемы.

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

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

Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++
имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать.
А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация
схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml?
Ради красивого слова? Или угловых скоб?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047604
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

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

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

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

XML схемы я вообще в метро выучил полистывая распечатанную документацию.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047626
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях.
И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON
может удвоить объем файла экспорта.

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

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

Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047864
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

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

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

PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047874
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может ли json описывать документы? Вот никогда такого не видел. Пример:
Код: plaintext
1.
2.
3.
4.
<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...
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047876
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravJavaScript — единственный язык
программирования фронт-энда.это в каком виде спорта?)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047880
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

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

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

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

Я пробовал Json-schema. К сожалению мне не удалось сделать проверки достаточно строгими.
Тоесть у меня получилось проверять только те сущности которые были декларированы. А новые
почему-то успешно проходил валидацию хотя и не должны-быть по идее.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047881
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T

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

json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним
на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски
что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект
в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть
как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer
при запросах к толстым документам.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 был предназначен.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047890
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

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

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

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

XML схема тоже не сказать что бы больно навороченный язык. Но неизвестные элементы и
атрибуты он не пропускает.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047896
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щас не хватает времени. Но я до пятницы проверю. И если это правда - то создам топик на тему
Xml-Schema vs Json-Schema. Who is stricter?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047993
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Dima T

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

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

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40047995
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

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

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

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048002
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

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

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

Ты чуть выше сказал, что придётся грузить сразу объект в 16 Гб. Из этого я сделал такое предположение.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048009
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

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

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

Да. Все верно. Я-же написал - если "делать запросы" к содержимому. Типа SELECT узлы WHERE какое-то свойство
e.t.c.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048069
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
>
PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.
==
Стразу 3 ошибки
- xml не плох, он многословен
- на фронте нет json, это формат передачи данных
- сегодня уже он шарпе, java и REST API а не JS.
Не нужно их противопоставить вообще.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048088
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Любые попытки заменить XML на Json сегодня сродни попыткам например заменить реляционные DBMS на NoSQL
системы. В частных случаях это срабатывает но в общем - мы теряем. Теряем возможности и смыслы которые были
заложены создателями изначально.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048094
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы упорядочьте сначала, зачем создавался формат, как позиционировался и как используется.

начнем (далее все может быть не верно)
xml создавался как формат обмена данными вне зависимости от бд и структуры.
json - для хранения небольших данных
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048110
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну и зачем ты это написал?

Это пример того, что когда доходит до дела вместо цсв парсера имеем какие-то костыли на коленке, а не полноценный парсер. Если уж костылить, костылили бы лучше тсв.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048112
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Почему он станет недоступен?

У автора этого движка спроси, почему он не поставил пром.парсер. И у авторов екселя заодно, почему там не делали импорт как в либре.
6 тысяч CSV-парсеров
Сколько из них вменяемые, а сколько - лабы и стрёмные велики без колёс?
mayton
А хотя-бы и не было. Неужели сам бы не написал?

Чтобы сделать парсер, надо реализовать посимвольное вычитывание данных, что заметно геморнее, чем делать split, которого нету только у сишников и отсталых.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048113
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в данной теме смешались стандартизация и человекочитаемость? Это две разные мои
мысли, которые зачем-то кто-то спутал.

Ради бога. Деайте тсв. Развеж я вас остановлю?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048115
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

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

Это ... даже несеръезно. При чем здесь split? И при чем здесь какие-то "осталые" сишники?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048117
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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;

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


И развернуть escape, для случая, когда файл влазит в память.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048119
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И при чем здесь какие-то "осталые" сишники?

Я не говорил, что сишники отсталые.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048123
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
(задумчиво)

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

Если речь идёт про таблицы, то не "скорее", а решительно нет, не о чём тут думать.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048125
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ради бога. Деайте тсв. Развеж я вас остановлю?

Ну вдруг у тебя есть весомые аргументы против и я что-то упускаю из вида.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40048126
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(руки вверх)

Всё ты победил! Делай на сплитах! Мне просто эта тема не интересна.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050558
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Если тезисно: каких смыслов больше в XML по сравнению с JSON?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050580
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 например.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050635
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonтвой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

Давай подумаем, как это будет с точки зрения парсера. Может быть я и не прав. Пускай брейнштормит шторм.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050644
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

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

Код: plaintext
1.
namespace myStd = std;
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050650
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonкак это будет с точки зрения парсера.

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

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

Где проблема?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050656
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

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

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

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

В случае хардкодом этой логики в тело XML/Json парсера - эта информация для читающего неизветна. И ему надо
будет консультироваться с L3 например чтобы понять почему тег <credit:amount> или "credit_amount" не виден в системе.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050659
Uridian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
<...> переименовать расширение в СSV
<...>И это Excel должен открыть как табличку.

Открыть-то он откроет, только при этом произойдёт потеря/искажение информации. Попробуйте открыть Excel-ем CSV-файл с таким содержимым:
Код: pascal
1.
0009876540;123456789e123

.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050661
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonчитающий (допустим это человек) может в документе глазами увидеть

Ни XML, ни JSON не предназначены для чтения человеком.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050662
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню, в Excel есть мастер импорта. И там для каждого поля можно явно указать тип данных.

Проблема неверной интерпретации целых/вещественных с плавающей точкой в Excel была давно. Она стара
как мир. И о ней вобщем осведомлены все бизнес-пользователи которые имеют опыт.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050664
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

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

Вопрос human-readablility я оставляю для нас открытым. И я почти готов согласится что читать его скорее неудобно
чем удобно. Но ведь меня спросили о других вещах.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050665
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

А что это за уровни L1 - L3? :)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050667
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну L3 - это мы с тобой. А L1 - это примерно девочка с колл-центра которая первая реагирует например
что тебе не выдали кредит по технической ошибке в системе. Неважно вобщем. Просто разные уровни
It-подготовки.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050678
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L0 - девочка-блондинка с колл-центра
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050698
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...


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

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

Могу добавить, что ещё в XSLT есть скрипты. А текст (сообщение) не обязательно
неструктурированный CDATA. Текст в XML может быть структурирован — содержать
теги. Где-то даже для математических формул я встречал XML схему.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050714
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю все видели прикол когда внуть JSON строки вставляют другой Json документ. Выглядит - ужасно.
Происходит эскейпинг служебны символов. Бекслеши при этом удваиваются. Пока все в порядке. Но если
предположить что какой-то кодер-умник рекурсивно 64 раза завернет 1 документ в документ контейнер
по правилам JSon. То мы получим количество слешей близкое к шахматной легенде. Это когда мудрец
попросил награду в виде зернышек на шахматной доске где каждая клетка имела геометрическую прогрессию
количества зерен от предыдущей.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050721
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ думаю все видели прикол когда внуть JSON строки вставляют другой Json документ.

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

PS: То же самое произойдёт если те же самые кретины перекодируют русскую строку из ANSI в UTF-8 64 раза подряд. И вот это я реально видел. Но что это доказывает? Что обезьянам нельзя давать гранаты или подпускать к программированию?..
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050739
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Просто забавное наблюдение. Вот в Xml можно вот так написать. Документ в документе.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?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>
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050747
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот в Xml можно вот так написать. Документ в документе.

То же самое можно сделать и в JSON. Ты будешь делать далеко идущие выводы на основании
кривого использования генератора документа или бага в нём?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40050757
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это забавное наблюдение. Не бери близко к сердцу.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051157
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И с точки зрения Xml-parser все узлы (Nodes) делятся на основные два под-типа. Elements и Attributes.
Каким образом это сделать в Json? Возможно и получится, но будет еще один уровень смыслов.
Сам JSon документ вследствие этого станет громоздким.

Есть еще другие типы Nodes (комметарии и секции неформатированных данных) но мы о них уже
говорили.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051164
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКаким образом это сделать в Json?

Это не надо делать в Json. Лучше задаться вопросом: "а назачем в XML несколько способом
приготовить кошку". https://ru.wikipedia.org/wiki/JSON#Синтаксис - там как раз показано
соответствие между JSON и XML.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051167
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov. А куда делся элемент <person> ? А что вы будете делать когда у <firstName> вдруг появятся атрибуты?

Я-же говорю. Вы можете придумать массу частных случаев. Но в обобщённом варианте процесс преобразования
XML->JSON сопряжен либо с потерей смыслов либо с созданием еще одного слоя JSON тегов которые будут обязаны
нести семантику Xml чтобы не допускать потерь.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051171
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА куда делся элемент <person> ?

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



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

То же самое, что и в случае когда в C++ переменную понадобится запихать сразу несколько
значений: сделаю её структурой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051182
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы ходим по кругу. Ладно. Оставайтесь при вашем мнении.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051184
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОставайтесь при вашем мнении.

Естественно останусь. Кстати, этим мнением является "XML полная хрень, которую надо
обходить за километр, да и JSON не лучше, но хотя бы проще".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051187
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

А что по вашему лучше?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051194
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravА что по вашему лучше?

Всё, на что есть точная спецификация или синтаксическая диаграмма. Я в основном использую TLV.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051198
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
У сишников нет веб проектов и надобности пересылать данные.
Поэтому им xml, json как пятая нога.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051200
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
и надобности пересылать данные.

Oh, really? Щас тебя побьют :)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051209
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
У сишников нет веб проектов и надобности пересылать данные.
Поэтому им xml, json как пятая нога.

Отчасти прав, сишники пересылают байты, код на С/С++ это обычно транспортный уровень
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051237
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
+1
Со стороны то всегда виднее)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051240
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Веб это гетерогенная система.
https://ru.m.wikipedia.org/wiki/Гетерогенная_система
Данные из одного Мира пересылаются в Другой.
Поэтому в java прогеры наоборот повернуты на xml/json.
Недавно один чел сериализовал в бд классы в виде json и просто не понимал что можно без него.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051300
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Я в основном использую TLV.

Ну ты сравнил монокль и радиотелескоп.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051305
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
В отличии от твоего он имеет стандарт.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051311
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можем поговорить о трабл-шутинге. О том как наблюдать TLV формат невооруженным глазом.
И как решать общие вопросы гетерогенного обмена данными. Как то: last/big endian. Разрядность
целого числа. И прочее.

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

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

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

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

Компактность и экономию места тоже можно включать в метрики.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051313
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМожем поговорить о трабл-шутинге.

А можем и не говорить, а просто вспомнить, что все вышеупомянутые гетерогенные системы
обмениваются своими текстовыми посланиями поверх (внезапно!) двоичного IP. То есть
согласование разрядности и конечности не является проблемой и заслуживает ровно одну
строчку в спецификации протокола "все числа передаются в network format".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051318
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но это слова. Спека.

А как вы практически решаете эти задачи? Должен быть API для декларативного описания месседжа.
И должен быть API для приведения байтов и битов в "network format".
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051320
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ должен быть API для приведения байтов и битов в "network format".

Так у IP, например, он есть: htonl(), htons(). У меня в проектах PushInt()/GatherInt().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051324
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

И после такого ты возмущаешься на тот «мой» plain-ini формат?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051328
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
   ; Название раздела 1
     ; ==================

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

     ; Название раздела 2
     ; ==================
Это не ini)))
Забудь это слово.
Детский сад какой то.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051337
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

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

XML:
Код: plaintext
1.
2.
3.
4.
5.
<employee id="123" departmentId="456" roleId="789" status="active">
    <firstName>Иван</firstName>
    <lastName>Иванович</lastName>
    <surName>Иванов</surName>
</employee>

JSON:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
{
    "person" : {
        "id": 123,
        "departmentId": 456,
        "roleId": 789,
        "status": "active",
        "firstName": "Иван",
        "lastName": "Иванович",
        "surName": "Иванов"
    }
}

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

Просто мальчикам и девочкам, которые пришли в Web, с трудом освоили JavaScript… Им сложно
задумываться: а что выбрать — атрибут или подэлемент? А синтаксис JS они худо бедно освоили.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051343
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Не пишите ерунду о том что JSON многословнее XML.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051347
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

Код: plaintext
1.
2.
3.
4.
5.
<employee id="123" departmentId="456" roleId="789" status="active">
    <firstName>Иван</firstName>
    <lastName>Иванович</lastName>
    <surName>Иванов</surName>
</employee>

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

Код: xml
1.
2.
3.
4.
5.
6.
<employee id="123" departmentId="456" 
    roleId="789" 
    status="active" 
    firstName="Иван"
    lastName="Иванович"
    surName="Иванов" />



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

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

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

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<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 подчиняются Иванову.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<employee id="123" departmentId="456" 
    roleId="789" 
    status="active" 
    firstName="Иван"
    lastName="Иванович"
    surName="Иванов" >
   <employee id="124" ...../>
   <employee id="125" ...../>
</employee>
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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

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

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

Какие API calls вы будете вызывать в браузере?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051352
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Отложи в сторону браузер. Нет его в плюсах проектов.
Вы в плюсах описываете структуру и в дельфи её читаете.
Всё.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051358
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как будет угодно.

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

Зачем тогда вообще спор был?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051360
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Я тебе объяснил почему xml/json не интересны сишникам.
Я когда им был тоже без них обходился.
Писал в файл бинарник метку размер данные.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051361
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Как будет угодно.

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

А зачем же тогда в Qt всякие Xml, Json и прочие HttpRequest? :)
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051364
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Для настроек (файлов) молодой человек.
А request не нужен. Ну или можно им курс валюты на сайте спросить.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051425
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
А зачем же тогда в Qt всякие Xml, Json и прочие HttpRequest? :)
Потому что некоторые нехорошие люди ничего, кроме Web API для взаимодействия не предусмотрели, хотя вполне можно было работать через базу.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051464
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010
petrav
А зачем же тогда в Qt всякие Xml, Json и прочие HttpRequest? :)
Потому что некоторые нехорошие люди ничего, кроме Web API для взаимодействия не предусмотрели, хотя вполне можно было работать через базу.

База решает свой диапазон задач. И не решает например message queues между узлами вычислительной сети.
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051518
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
     ; Название раздела 1
     ; ==================

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

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

Да, не ini. Но я же просил придумать название формата. Ты ничего не
предложил.
Модератор: не забывай об этикете
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051522
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Ну очевидно же. Твой собственный формат никому не интересен.
Настройки.мойформат
Не подходит?
Или боимся русских букв и более 8 символов?
))))
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051552
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Мне тоже интересна. Только с инженерами. Без оффтопов.
Ты кто?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051668
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xamelione25, у тебя еще есть какие-то вопросы по теме?
...
Рейтинг: 0 / 0
Заменить запись в файл с txt на xlsx
    #40051953
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xamelione25,

Код: plaintext
1.
f1.open("log.txt", ios_base::trunc);


=>
Код: plaintext
1.
f1.open("log.xls", ios_base::trunc);
...
Рейтинг: 0 / 0
150 сообщений из 150, показаны все 6 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Заменить запись в файл с txt на xlsx
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]