![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Как убрать ASCII-символ из файла? |
|
VBS/WSH/JS - [решено] Как убрать ASCII-символ из файла?
|
Старожил Сообщения: 161 |
Есть файл вот такого вида: во вложении.
Нужно убрать из него все символы с ASCII-кодом 013 (обведен красным). Пытаюсь сделать это вот таким кодом: Set NFile2 = FSO.OpenTextFile("D:\30.10.ptr", 1, True) arrTemp = Split(NFile2.ReadAll, vbNewLine) Nfile2.Close For i = 0 To UBound(arrTemp) arrTemp(i) = Replace(arrTemp(i), Chr(013), "") Next Set NFile2 = FSO.CreateTextFile("D:\30.10.ptr", True) NFile2.Write Join(arrTemp, vbNewLine) NFile2.Close Set NFile2 = Nothing Хотя если поставить ASCII-код символа, например, 036 ($) - то все прекрасно убирает. |
|
Отправлено: 23:50, 23-03-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата glukin:
|
|
Отправлено: 00:03, 24-03-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать Iska, Прикрепил.
Картинка для наглядности, что нужно удалять. |
Отправлено: 00:11, 24-03-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Если Вам нужно заменить последовательность концов строк с формата Windows (CrLf) на Unix (Lf), то можете попробовать так (не проверялось):
Скрытый текст
Option Explicit Dim strSourceFile Dim arrContent strSourceFile = "D:\30.10.ptr" With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strSourceFile) Then With .OpenTextFile(strSourceFile) arrContent = Split(.ReadAll(), vbCrLf) .Close End With With .CreateTextFile(strSourceFile, True) .Write Join(arrContent, vbLf) .Close End With Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If End With WScript.Quit 0 |
Отправлено: 00:11, 24-03-2017 | #4 |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать Iska, спасибо, работает. А подскажите еще плз, как мне убрать в конце файла символ 0x01A?
|
|
Отправлено: 07:50, 24-03-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать glukin, а Вы уверены, что его нужно убирать? Это обычный «End-of-file», во времена оны требовался для завершения любого текстового файла (впрочем, и сейчас можете его опробовать его использование — ввести в консоль командной строки «copy con: SomeFile.txt», что-нибудь понабирать, периодически нажимая Enter, и завершить ввод, нажатием Ctrl-Z — тот самый «End-of-file», затем Enter). Хотя, да — нынче практически не встречается в природе.
Самое простое — тупо сделать замену. Поменяйте запись в файл на такую строку: |
Отправлено: 08:32, 24-03-2017 | #6 |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 09:29, 24-03-2017 | #7 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Iska,
Почему надо читать исходный файл в массив, почему нельзя его прочесть в строку и сделать replace ?
File_In = "Z:\Box_Arc\30.10.ptr" ' Исходный файл File_Out = "Z:\Box_Arc\30.10.mod.ptr" ' Обработанный файл (может совпадать с исходным) DelSym = Array(13, &H1A) ' Коды символов удаляемых из текста N1 = LBound(DelSym) N2 = UBound(DelSym) Set FSO = CreateObject("Scripting.FileSystemObject") Set NFile = FSO.OpenTextFile(File_In, 1, False) S = NFile.ReadAll NFile.Close For i = N1 To N2 S = Replace(S, Chr(DelSym(i)), "") Next Set NFile = FSO.OpenTextFile(File_Out, 2, True) NFile.Write S NFile.Close |
------- Последний раз редактировалось megaloman, 24-03-2017 в 10:36. Отправлено: 10:19, 24-03-2017 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 10:23, 24-03-2017 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - CMD - читаю из файла, если первый символ строки =*, то вывести на экран строку | jester7 | Скриптовые языки администрирования Windows | 16 | 11-04-2022 13:52 | |
Как вставить управляющий символ Unicode в имя файла. | SANIOK_AV | Хочу все знать | 19 | 10-11-2012 09:15 | |
CMD/BAT - [решено] Как из имени файла убрать 11 символов | cdp75 | Скриптовые языки администрирования Windows | 3 | 26-04-2012 06:07 | |
CMD/BAT - [решено] как из bat файла дописать символ в текстовый файл? | idzs | Скриптовые языки администрирования Windows | 6 | 22-02-2011 03:49 | |
Мультимедиа - Как убрать лицензию из WMV-файла? | Guest | Программное обеспечение Windows | 34 | 26-07-2008 18:47 |
|