Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Интересная операция с текстом (http://forum.oszone.net/showthread.php?t=274579)

iccup.platoon@vk 24-12-2013 06:31 2277627

Интересная операция с текстом
 
Доброго времени суток.
Задача стоит в следующем - имеется файл такого содержания:
Код:

текст_первого_типа_1
текст_второго_типа_1
текст_третьего_типа_1
текст_первого_типа_2
текст_второго_типа_2
текст_третьего_типа_2
текст_первого_типа_3
текст_второго_типа_3
текст_третьего_типа_3
...

Мне нужно сделать так, чтобы, после обработки BAT-файлом, файл принял следующий вид:
Код:

текст_первого_типа_1 | текст_второго_типа_1 | текст_третьего_типа_1
текст_первого_типа_2 | текст_второго_типа_2 | текст_третьего_типа_2
текст_первого_типа_3 | текст_второго_типа_3 | текст_третьего_типа_3

Да, именно разделенные такими | палочками и обязательно с пробелами по обе "границы" (то есть [текст][пробел][|][пробел][текст][пробел][|][пробел][текст]. Я уже как только не мучался - пытался читать с трех разных файлов, клея строки... Ничего не выходит. Прошу Вашей помощи...

Iska 24-12-2013 07:15 2277632

iccup.platoon@vk, многое зависит от того, в какой кодировке и с какими разделителями строк этот файл находится. Также малопонятно, что подразумевается под «текст_первого_типа_1», «текст_первого_типа_2» и т.д., по какому принципу их отбирать и группировать.

Выложите образец реального файла, упаковав его в архив. И на его примере укажите потребный результат.

iccup.platoon@vk 24-12-2013 07:26 2277634

Вложений: 1
В архиве фалы исходник.тхт ("сырой" фаил) и результат.тхт (файл, который должен получиться после обработки).

Iska 24-12-2013 08:01 2277643

Ага. Стало быть, задача такая — сгруппировать строки по трое с разделителем?

Правда, непонятно,
читать дальше »
как из строк:
Код:

Elven Relations
rutracker.org/forum/viewtopic.php?t=3407872
86 MB

может получиться:
Код:

Elven Relations | http://rutracker.org/forum/viewtopic.php?t=3407872 | 86 MB
?


На WSH. Пробуйте:
читать дальше »
Код:

Option Explicit

Dim strSourceFile
Dim strDestFile
Dim arrLines
Dim i


strSourceFile = "E:\Песочница\0338\задача\исходник.txt"
strDestFile  = "E:\Песочница\0338\задача\результат.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FileExists(strSourceFile) Then
                With .OpenTextFile(strSourceFile)
                        arrLines = Split(.ReadAll(), vbCrLf)
                       
                        .Close
                End With
               
                ReDim Preserve arrLines(UBound(arrLines) - 1)
               
                With .CreateTextFile(strDestFile, True)
                        For i = LBound(arrLines) To UBound(arrLines) Step 3
                                .WriteLine arrLines(i) & " | " & arrLines(i + 1) & " | " & arrLines(i + 2)
                        Next
                       
                        .Close
                End With
        Else
                WScript.Echo "Source file [" & strSourceFile & "] not found."
                WScript.Quit 1
        End If
End With

WScript.Quit 0


Последняя строка исходного файла должна завершаться символами конца строки (иначе уберите «ReDim Preserve arrLines(UBound(arrLines) - 1)»).

iccup.platoon@vk 24-12-2013 08:51 2277651

Iska, про http - банальная опечатка, простите. А про wsh - в каком формате сей код сохранить?

Iska, при запуске говорится "сценарий не указан"

Вай, всё работает, большое спасибо! Я так понял, WSH получше бата? =) Спасибо, задача решена.

Iska 24-12-2013 09:49 2277663

Цитата:

Цитата iccup.platoon@vk
А про wsh - в каком формате сей код сохранить? »

Расширение — «.vbs», кодировка — ANSI/1251.

Цитата:

Цитата iccup.platoon@vk
Я так понял, WSH получше бата? »

Больше возможностей.


Время: 12:27.

Время: 12:27.
© OSzone.net 2001-