Серилизация XML File c#
У меня есть XML File который хранится в БД FireBird, мне нужно обратится к определенной строке и прочитать script Мне нужно прочитать файл в С# Открытия файла будет записываться в DataGridView где будет кнопка загрузка.
выполнения скрипта будет использоваться процедура ToVagon
<FILE NAME="УП O`zbekTemirYo`lEkspeditsia">
<FIELD NAME="DEPARTURE" CAPTION="Дата отпр." TYPE="ftDate" DBNAME="DEPARTURE_TRAIN" READ_ONLY="True"/> <!--0 -->
<FIELD NAME="SUB_CODE" CAPTION="Под. код" TYPE="ftString" DBNAME="CODE" READ_ONLY="False"/> <!--1 -->
<FIELD NAME="INVOICE" CAPTION="№ Накладной" TYPE="ftString" DBNAME="NUMBER_INVOICE" READ_ONLY="False"/> <!--2 -->
<FIELD NAME="VAGON" CAPTION="№ Вагона" TYPE="ftString" DBNAME="NUMBER_VAGON" READ_ONLY="False"/> <!--3 -->
<FIELD NAME="ST_OTPR" CAPTION="Ст. отправления" DBNAME="DISPATCH_NAME" TYPE="ftString" READ_ONLY="True"/> <!--4 -->
<FIELD NAME="ST_NAZN" CAPTION="Ст. назначения" DBNAME="ARRIVAL_NAME" TYPE="ftString" READ_ONLY="True"/> <!--5 -->
<FIELD NAME="CARGO" CAPTION="Груз" DBNAME="CARGO_NAME" TYPE="ftString" READ_ONLY="True"/> <!--6 -->
<FIELD NAME="VES" CAPTION="Вес" DBNAME="LOADING" TYPE="ftFloat" READ_ONLY="False"/> <!--7 -->
<FIELD NAME="VAGON_SUMMA" CAPTION="Сумма" DBNAME="SUMMA" TYPE="ftFloat" READ_ONLY="False"/> <!--8 -->
<COMMAND NAME="Разбить на вагоны" PROCEDURE="ToVagons"/>
<SCRIPT LANGUAGE="VBScript">
'Переменная Название файла используеются в функции OpenFile
public FileName
function ExtractName(FileName)
I = InStrRev(FileName, "\")
ExtractName = Mid(FileName, I + 1, 255)
end function
'Переменная путь к файлу используеются в функции OpenFile
function ExtractDir(FileName)
I = InStrRev(FileName, "\")
ExtractDir = Mid(FileName, 1, I - 1)
end function
'Открытие файла формат DBF4
function OpenFile
FileName = Command.OpenDialog(Null)
if IsNull(FileName) then
OpenFile = Null
else
S = ExtractDir(FileName)
S = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Initial Catalog=" & S
set con = CreateObject("ADODB.Connection")
con.Open(S)
F = ExtractName(FileName)
S = F
set Table = con.execute(S)
set OpenFile = Table
end if
end function
function GetFileName
GetFileName = FileName
end function
function ReadFile (Table)
if Table.EOF then
ReadFile = Null
else
res = Array(Table.Fields(0).Value, Table.Fields(1).Value, _
Table.Fields(2).Value, Table.Fields(3).Value, _
Table.Fields(4).Value, Table.Fields(5).Value, _
Table.Fields(6).Value, Table.Fields(7).Value, _
Table.Fields(8).Value)
Table.MoveNext
ReadFile = res
end if
end function
function RecordCount(Table)
RecordCount = Table.RecordCount
end function
sub ToVagons(Table)
N = InputBox("Количество вагонов")
if not IsNull(N) then
sumVes = Command.Field(Array(Table, "VES")) / N
sumVagonSumma = Command.Field(Array(Table, "VAGON_SUMMA")) / N
Command.SetField(Array(Table, "VES", sumVes))
Command.SetField(Array(Table, "VAGON_SUMMA", sumVagonSumma))
Rec = Array(Command.Field(Array(Table, "DEPARTURE")), _
Command.Field(Array(Table, "SUB_CODE")), _
Command.Field(Array(Table, "INVOICE")), _
Command.Field(Array(Table, "VAGON")), _
Command.Field(Array(Table, "ST_OTPR")), _
Command.Field(Array(Table, "ST_NAZN")), Command.Field(Array(Table, "CARGO")), _
Command.Field(Array(Table, "VES")), Command.Field(Array(Table, "VAGON_SUMMA")))
for I = 1 to N - 1
Command.Insert(Rec)
next
end if
end sub
</SCRIPT>
</FILE>
</FILES>```