Автор Тема: [Данные, строки] Перенос данных из TXT в XML  (Прочитано 4402 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GitoKorol [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
    • Награды
Привет всем, стоит задача перенести данные из файла txt в xml:

ТХТ совержит в себе вот такую информацию:
СекцияДокумент=Платежное поручение
Номер=256
Дата=29.08.2011
Сумма=25200.00
ПлательщикСчет=40702810500000242403
ДатаСписано=26.08.2011
ПлательщикИНН=5050049363
ПлательщикКПП=505001007
Плательщик1= ООО "Наша компания" в Центральном ф-ле Банка г.Москва
ПлательщикРасчСчет=40702810500200142802
ПлательщикБанк1= БАНК "НАШБАНК" (ОАО)
ПлательщикБанк2= г Москва
ПлательщикБИК=044525181
ПлательщикКорсчет=30101810900000000181
ПолучательСчет=40817810738061509827
ДатаПоступило=
ПолучательИНН=7707083897
ПолучательКПП=775003017
Получатель1= ОАО Московский банк Сбербанка России №9038/01328
ПолучательРасчСчет=40817810738061509823
ПолучательБанк1= ОАО "СБЕРБАНК РОССИИ"
ПолучательБанк2= г Москва
ПолучательБИК=044525225
ПолучательКорсчет=30101810400000000365
ВидПлатежа=электронно
ВидОплаты=01
СтатусСоставителя=
ПоказательКБК=
ОКАТО=
ПоказательОснования=
ПоказательПериода=
ПоказательНомера=
ПоказательДаты=
ПоказательТипа=
СрокПлатежа=
Очередность=6
НазначениеПлатежа=За какие то услуги
КонецДокумента

Некоторые поля необходиом выдрать и поместить в суцествующий XML файл. Его структура с данными будет выглядеть так:

  <LINE DATE="03.12.2010 10:02(Дата импорта)">
    <Value ID="259" Name="ООО "Наша компания" в Центральном ф-ле Банка г.Москва" Date="29-08-2011" Type="1" Number="259" INN="5050049363" Sum="25200.00">За какие то услуги</Value>
 
  </LINE>

Необходим простой пример как это можно реализовать.

Большое спасибо!

Русское сообщество AutoIt

[Данные, строки] Перенос данных из TXT в XML
« Отправлен: Август 29, 2011, 11:24:06 »

Оффлайн axlwor [?]

  • Скриптер
  • ****
  • Сообщений: 657
  • Репутация: 147
    • Награды
Re: [Данные, строки] Перенос данных из TXT в XML
« Ответ #1, Отправлен: Август 29, 2011, 13:06:17 »
OffTopicа семерка не делает готовый xml?

Оффлайн XpycT [?]

  • Скриптер
  • ****
  • Сообщений: 380
  • Репутация: 132
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Данные, строки] Перенос данных из TXT в XML
« Ответ #2, Отправлен: Август 29, 2011, 13:27:29 »
GitoKorol
Как вариант можно сделать так
Код: AutoIt [Выделить]
$sTXTFile = @ScriptDir & "\Data.txt" ; Путь к TXT файлу с информацией
$sXMLFile = @ScriptDir & "\Data.xml" ; Путь для сохранения XML файла

$sTXTData = StringReplace(FileRead($sTXTFile), @CRLF, "")

$aXMLData = StringRegExp($sTXTData, "Номер=(\d+)Дата=([\d\.]+)Сумма=([\d\.]+)(?:.*)ПлательщикИНН=(\d+)(?:.*)Плательщик(\d)=(.*)ПлательщикР(?:.*)НазначениеПлатежа=(.*)КонецДокумента", 3)
$aXMLData[1] = StringReplace($aXMLData[1], ".", "-")
$aXMLData[5] = StringStripWS($aXMLData[5], 1 + 2)

$sLineDate = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & "." & @MIN

$sValueStr = '    <Value ID="' & $aXMLData[0] & '" Name="' & $aXMLData[5] & '"  Date="' & $aXMLData[1] & '" Type="' & $aXMLData[4] & '" '
$sValueStr &= 'Number="' & $aXMLData[0] & '" INN="' & $aXMLData[3] & '" Sum="' & $aXMLData[2] & '">' & $aXMLData[6] & '</Value>'

FileWriteLine($sXMLFile, '<LINE DATE="' & $sLineDate & '">' & @CRLF & $sValueStr & @CRLF & '</LINE>' & @CRLF)

« Последнее редактирование: Август 29, 2011, 13:53:16 от XpycT »


Рожденный летать, висеть не может.

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

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Данные, строки] Перенос данных из TXT в XML
« Ответ #3, Отправлен: Август 29, 2011, 15:24:45 »
GitoKorol,
Можно еще так попробовать:
Код: AutoIt [Выделить]
$sFileTxt = @ScriptDir & '\test.txt'

Dim $aSearch[9][4] = [[8],['Номер', 'ID=', '"'],['Плательщик1', 'Name=', '"'],['Дата', 'Date=', '"-'], _
        ['ВидОплаты', 'Type=', '"num'],['Номер', 'Number=', '"'], _
        ['ПлательщикИНН', 'INN=', '"'],['Сумма', 'Sum=', '"'],['НазначениеПлатежа']]

$sTextOld = FileRead($sFileTxt)
If Not $sTextOld Then
    MsgBox(16, 'Error', 'Error')
    Exit
EndIf
$sTextNew = @TAB & '<LINE DATE="' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @HOUR & ':' & @MIN & _
        '(Дата импорта)">' & @CRLF & @TAB & @TAB & '<Value '

For $i = 1 To $aSearch[0][0]
    $aSearch[$i][3] = StringStripWS(StringRegExpReplace($sTextOld, '(?s).*?' & $aSearch[$i][0] & '=(.*?)\r\n?.*', '$1'), 3)
    If StringInStr($aSearch[$i][2], 'num') Then
        $aSearch[$i][3] = Number($aSearch[$i][3])
    EndIf
    If StringInStr($aSearch[$i][2], '"') Then
        $aSearch[$i][3] = '"' & $aSearch[$i][3] & '"'
    EndIf
    If StringInStr($aSearch[$i][2], '-') Then
        $aSearch[$i][3] = StringReplace($aSearch[$i][3], '.', '-')
    EndIf
    $aSearch[$i][1] &= $aSearch[$i][3]
    If $i < $aSearch[0][0] Then
        $sTextNew &= $aSearch[$i][1] & ' '
    EndIf
Next
$sTextNew &= '>' & $aSearch[$aSearch[0][0]][1] & '</Value>' & @CRLF & @CRLF & @TAB & '</LINE>' & @CRLF
ConsoleWrite($sTextNew & @LF)
$sFileXml = StringRegExpReplace($sFileTxt, '.*\\|\.[^.]*$', '') & '.xml'
$hFile = FileOpen($sFileXml, 1) ;нужную кодировку поставьте
FileWrite($hFile, $sTextNew)
FileClose($hFile)


Русское сообщество AutoIt

Re: [Данные, строки] Перенос данных из TXT в XML
« Ответ #3 Отправлен: Август 29, 2011, 15:24:45 »

Оффлайн GitoKorol [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
    • Награды
Re: [Данные, строки] Перенос данных из TXT в XML
« Ответ #4, Отправлен: Август 30, 2011, 08:31:35 »
Помогло, спасибо большое, задача решена.
СПАСИБО!!!!!!!

Русское сообщество AutoIt

Re: [Данные, строки] Перенос данных из TXT в XML
« Ответ #4 Отправлен: Август 30, 2011, 08:31:35 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
6201 Просмотров
Последний ответ Декабрь 28, 2010, 09:19:53
от gregaz
4 Ответов
3596 Просмотров
Последний ответ Март 31, 2011, 15:09:57
от HaeMHuK
1 Ответов
4215 Просмотров
Последний ответ Март 02, 2012, 13:15:40
от ---Zak---
3 Ответов
3881 Просмотров
Последний ответ Март 24, 2012, 17:22:38
от Sudno
1 Ответов
3821 Просмотров
Последний ответ Июнь 09, 2012, 22:35:40
от AZJIO
10 Ответов
4351 Просмотров
Последний ответ Май 05, 2013, 09:07:35
от MnM
0 Ответов
2311 Просмотров
Последний ответ Май 16, 2013, 00:04:21
от PACHOM
4 Ответов
1088 Просмотров
Последний ответ Ноябрь 11, 2016, 09:26:16
от ra4o
23 Ответов
4124 Просмотров
Последний ответ Декабрь 27, 2016, 17:33:21
от Anna
3 Ответов
228 Просмотров
Последний ответ Июль 14, 2018, 19:03:11
от alex33