Цитата:
Сообщение от
bobski
Как это победить? Ничего не выходит
Вот как это делаю:
X++:
AsciiIO = new AsciiIO(FileName, "R");
AsciiIo.inRecordDelimiter('\r\n');
AsciiIo.inFieldDelimiter(';');
while (AsciiIo.status() == IO_Status::Ok)
{
Data_Container = AsciiIo.read();
ontainer_New += conins(Data_Container,conlen(Data_Container)+1,'\n');
...
}
AsciiIO = new AsciiIO(FileName, "W");
AsciiIo.OutRecordDelimiter('\r\n');
AsciiIo.OutFieldDelimiter(';');
AsciiIo.write(Data_container_New);
Фигня получается. Сделай как-нибудь так:
X++:
AsciiIo.inRecordDelimiter('\r\n');
AsciiIo.inFieldDelimiter(';');
while (AsciiIo.status() == IO_Status::Ok)
{
Data_Container = AsciiIo.read();
if (Data_Container != connull())
{
f1 = conpeek(Data_Container, 1);
f1 = f1 + 1; // изменяем значение первого поля
Data_Container = conPoke(Data_Container, 1, f1);
//Вata_Сontainer_New += conins(Data_Container,conlen(Data_Container)+1,'\n');
Data_container_New = conIns(Data_container_New, conLen(Data_container_New) + 1, Data_Container);
//...
}
}
AsciiIO = new AsciiIO(@"D:\TEMP\test2.csv", "W");
AsciiIo.OutRecordDelimiter('\r\n');
AsciiIo.OutFieldDelimiter(';');
//AsciiIo.write(Data_container_New);
for (i = 1; i < conlen(Data_container_New) + 1; i++)
{
AsciiIo.write(conpeek(Data_container_New, i));
}