Консультация № 174807
03.12.2009, 01:01
0.00 руб.
0 8 1
Здравствуйте!
Вот такая проблема:

Необходимо считать текстовый файл, содержащий информацию(приложение)
сделать из него xml-файл и представить его с каким-нибудь дизайном в виде отчета,т.е. на html-странице

Спасибо!!!

Приложение:
;4127 ;00255;10000; 2248.00;796;20090101;20091231;
;12304 ;00255;10000; 758.80;796;20090801;20091231;
;5071 ;00801;5000 ; 59.35;796;20090807;20091231;
;7670 ;00255;6050 ; 744.90;796;20090801;20091231;
;3914 ;00031;10000; 0.45;796;20080101;20081231;
;4753 ;09565;10000; 0.86;796;20090101;20091231;
;6829 ;12825;10000; 2591.00;796;20090301;20091231;

номенклатурный номер закупаемой позиции
код контрагента, поставляющего нам эту позицию
процент поставок от этого контрагента - одну и ту же позицию нам могут поставлять несколько поставщиков. И в этом случае мы должны знать, сколько процентов от общих закупок кто поставляет. В этом поле находится скорее код, ибо 10000 означает 100%, 5000 - 50%, а 6050 - 60.5%
цена единицы поставок - здесь только в рублях, однако может быть многовалютный подход
код единицы измерение поставок
дата начала действия договорной цены - или какой-нибудь код (например, 99999999) при "открытой дате"
дата завершения действия договорной цены

Обсуждение

давно
Академик
20764
1861
03.12.2009, 08:19
общий
C/C++ требуется в задании? Он для обеих целей плохо подходит.

Для конвертирования в xml лучше использовать какой-нибудь интерпретатор: python, perl, java, php,..
Для отображения xml существует механизм xslt
Неизвестный
03.12.2009, 09:42
общий
Миронычев Виталий:
Добрый день! Можно увидеть пример полностью, то есть текстовый файл +xml-файл, который из него получен?
Неизвестный
03.12.2009, 11:19
общий
leonid59:
Здравствуйте! ссылка для скачивания текстового файла-https://rfpro.ru/upload/1121
А вот xml-файл нужно получить и опубликовать
Неизвестный
03.12.2009, 11:58
общий
Миронычев Виталий:
Как я понимаю, задание состоит в том, чтобы написать программу, которая из файла указанной Вами структуры должна получить файл XML-структуры. А какова структура XML-файла? И нужен контрольный пример.
Неизвестный
03.12.2009, 12:48
общий
leonid59:
Все правильно-из текстового файла получить xml-файл (а вто-какая структура-такая же как у текстового)
Неизвестный
03.12.2009, 19:58
общий
А этот xml-файл потом где-то используется? Потому что создавать его не проще, чем конечный html. Я бы мог набросать программку на C#, а на C с ней возни лишней много.
Если файл будет использоваться, то желательно указать, как теги назвать. Либо вам придется потом под них подстраиваться.
Неизвестный
03.12.2009, 20:40
общий
Evgenijm:
Нет этот xml-файл больше не планируется нигде использоваться, только как для создания отчета
Можно и на С#-лишь бы было что-то
Помогите
Неизвестный
04.12.2009, 09:06
общий
это ответ
Здравствуйте, Миронычев Виталий.

Поскольку нужен все-таки конечный html и язык не важен, вот код на C#. Он читает с консоли ваш файл и выводит на консоль готовый html. Строки с неправильным количеством полей будет пропускать. Про файлы ничего не знает, поэтому запускать его надо так:
Код:
txt2xml <_LPH_MU.txt >out.html

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

Приложение:
using System;

namespace txt2xml
{
public class txt2xml
{
static void Main()
{
String Line;
String[] Parts;
char[] Del = new char[] { ';' };
Console.InputEncoding = System.Text.Encoding.GetEncoding("windows-1251");
Console.OutputEncoding = System.Text.Encoding.GetEncoding("windows-1251");
Console.WriteLine("<html>");
Console.WriteLine("<head>");
Console.WriteLine("\t<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />");
Console.WriteLine("</head>");
Console.WriteLine("<body>");
Console.WriteLine("\t<table>");
Console.WriteLine("\t\t<thead><td>Код группы</td><td>Код единицы измерения</td><td>Сокращенное наименование</td><td>Полное наименование</td><td>Код основной единицы</td><td>Коэффициент соответствия основной единице</td></thead>");
while ((Line = Console.ReadLine()) != null)
{
Parts = Line.Split(Del);
if (Parts.Length == 7)
{
Console.WriteLine("\t\t<tr>");
for(int i=0; i<6; i++)
Console.WriteLine("\t\t\t<td>{0}</td>", Parts[i].Trim());
Console.WriteLine("\t\t</tr>");
}
}
Console.WriteLine("<\t/table>");
Console.WriteLine("</body>");
Console.WriteLine("</html>");
}
}
}
Форма ответа