Ветеран

Сообщения: 2728
Благодарности: 1697
|
Профиль
|
Отправить PM
| Цитировать
Technik_spat, Если нумерацию полей начинать с 0, то изменяемое поле - это 5, а индикатор изменения - 9.
Код: 
MRe = Array("0.083000", "0.084000", _
"0.133000", "0.134000", _
"0.142000", "0.143000", _
"0.166000", "0.167000", _
"0.221000", "0.223000", _
"0.222000", "0.223000", _
"0.284000", "0.286000", _
"0.285000", "0.286000", _
"0.332000", "0.334000", _
"0.333000", "0.334000", _
"0.427000", "0.429000", _
"0.428000", "0.429000", _
"0.498000", "0.501000", _
"0.499000", "0.501000", _
"0.666000", "0.667000")
MsgBox ReStr("98;2100076544175;Сармат-мол;0;0;0.166000;;1;;0;;;", ";", 5, 9, MRe)
MsgBox ReStr("113;2100076594188;Форман-Лоп;0;0;0.142000;;1;;3;;;", ";", 5, 9, MRe)
MsgBox ReStr("116;2100076500005;Сократ-Бетон;0;0;0.166000;;1;;2;;;", ";", 5, 9, MRe)
Function ReStr(s, d, ix, ii, Mas)
a = Split(s, d)
ReStr = s
If a(ii) = "0" Then
For i = LBound(Mas) To UBound(Mas) Step 2
If Mas(i) = a(ix) Then
ReStr = RePlace(s, a(ix), Mas(i + 1))
Exit For
End If
Next
End If
End Function
Более наглядный вариант
Код: 
MRe = Array("0.083000", "0.084000", _
"0.133000", "0.134000", _
"0.142000", "0.143000", _
"0.166000", "0.167000", _
"0.221000", "0.223000", _
"0.222000", "0.223000", _
"0.284000", "0.286000", _
"0.285000", "0.286000", _
"0.332000", "0.334000", _
"0.333000", "0.334000", _
"0.427000", "0.429000", _
"0.428000", "0.429000", _
"0.498000", "0.501000", _
"0.499000", "0.501000", _
"0.666000", "0.667000")
Dan = Array("98;2100076544175;Сармат-мол;0;0;0.166000;;1;;0;;;", _
"113;2100076594188;Форман-Лоп;0;0;0.142000;;1;;3;;;", _
"214;2100076594001;Фордзон-Путиловец;0;0;0.427000;;1;;0;;;", _
"215;2100076594002;Братья Райт;0;0;0.428000;;1;;0;;;", _
"216;2100076594003;Фсякая Фигня;0;0;0.666000;;1;;0;;;", _
"116;2100076500005;Сократ-Бетон;0;0;0.166000;;1;;2;;;")
M = ""
For j = LBound(Dan) To UBound(Dan)
M = M + Dan(j) + vbCrLf + ReStr(Dan(j), ";", 5, 9, MRe) + vbCrLf + vbCrLf
Next
MsgBox M
Function ReStr(s, d, ix, ii, Mas)
a = Split(s, d)
ReStr = s
If a(ii) = "0" Then
For i = LBound(Mas) To UBound(Mas) Step 2
If Mas(i) = a(ix) Then
ReStr = RePlace(s, a(ix), Mas(i + 1))
Exit For
End If
Next
End If
End Function
|