---Zak---
Скриптер
- Сообщения
- 455
- Репутация
- 120
Добрый день.
Ребят - "Ай нид хелп"... возможно ли как-нибудь быстренько обработать строки на удаление повторений в них, но с небольшим учетом.
ЗЫ: я понимаю что можно перевести в массив, потом искать совпадения - удалять и переводить это все обратно в строку. Но это очень долго, противно и вообще не вкусно.
Допустим есть массив:
Как бы так сделать, чтобы результат был таким:
1. В строке берем символы до ";" (000000001) и далее прыгаем в промежуток "000000001 (nnn) FFFA sssssssss\a ssssssssssssssss" и удаляем от туда символы.
Заранее спасибо за ответы...
Добавлено:
ЗЫ: как-то так что ли...
Ребят - "Ай нид хелп"... возможно ли как-нибудь быстренько обработать строки на удаление повторений в них, но с небольшим учетом.
ЗЫ: я понимаю что можно перевести в массив, потом искать совпадения - удалять и переводить это все обратно в строку. Но это очень долго, противно и вообще не вкусно.
Допустим есть массив:
Код:
Local $avArray[3]
$avArray[0] = "000000001;FFFA;000000001 (nnn) FFFA sssssssss\a ssssssssssssssss;na;na;na"
$avArray[1] = "000000002;FFFB;000000002 FFFB sssssssss\b ssssssssssssssss;nb;nb;nb"
$avArray[2] = "000000003;FFFC;000000003 sssssssss\c ssssssssssssssss;nc;nc;nc"
Как бы так сделать, чтобы результат был таким:
000000001;FFFA;(nnn) sssssssss\a ssssssssssssssss;na;na;na
000000002;FFFB;sssssssss\b ssssssssssssssss;nb;nb;nb
000000003;FFFC;sssssssss\c ssssssssssssssss;nc;nc;nc
1. В строке берем символы до ";" (000000001) и далее прыгаем в промежуток "000000001 (nnn) FFFA sssssssss\a ssssssssssssssss" и удаляем от туда символы.
2. В строке берем символы после ";" и до ближайшего ";" (FFFA) и так же в том же промежутке удаляем эти символы.000000001;FFFA;(nnn) FFFA sssssssss\a ssssssssssssssss;na;na;na
000000002;FFFB;FFFB sssssssss\b ssssssssssssssss;nb;nb;nb
000000003;FFFC;sssssssss\c ssssssssssssssss;nc;nc;nc
3. Берем следующую строчку... т.е. дальше искать и удалять ничего не нужно - исключительно 1 и 2 "партии".000000001;FFFA;(nnn) sssssssss\a ssssssssssssssss;na;na;na
000000002;FFFB;sssssssss\b ssssssssssssssss;nb;nb;nb
000000003;FFFC;sssssssss\c ssssssssssssssss;nc;nc;nc
Заранее спасибо за ответы...
Добавлено:
Сообщение автоматически объединено:
ЗЫ: как-то так что ли...
Код:
Local $avArray[3]
$avArray[0] = "000000001;FFFA;000000001 (nnn) FFFA sssssssss\a ssssssssssssssss;na;na;na"
$avArray[1] = "000000002;FFFB;000000002 FFFB sssssssss\b ssssssssssssssss;nb;nb;nb"
$avArray[2] = "000000003;FFFC;000000003 sssssssss\c ssssssssssssssss;nc;nc;nc"
For $i=0 To UBound($avArray)-1
$aSTR = StringSplit($avArray[$i], ';')
If StringInStr($aSTR[3], $aSTR[1]) Then
$aSTR[3] = StringRegExpReplace($aSTR[3], $aSTR[1]&" ", "")
$aSTR[3] = StringStripWS($aSTR[3], 3)
EndIf
If StringInStr($aSTR[3], $aSTR[2]) Then
$aSTR[3] = StringRegExpReplace($aSTR[3], $aSTR[2]&" ", "")
$aSTR[3] = StringStripWS($aSTR[3], 3)
EndIf
$Rez = ''
For $i2 = 1 To UBound($aSTR)-1
$Rez &= $aSTR[$i2]&";"
Next
ConsoleWrite($Rez&@CRLF)
Next