Что нового

[Данные, строки] Считывание текста из столбца до "пробела" и копирование его в другой файл

DR_ALF

Новичок
Сообщения
16
Репутация
0
Версия AutoIt: v3.3.8.1

Описание:
Есть текстовый файл такого содержания:

ability ;способность, возможность
able ;знающий, умелый, способный
about ;кругом, повсюду, приблизительно
above ;наверху, вверху, выше, над

Нужно привести к такому виду:

ability
able
about
above

Подскажите пожалуйста как можно реализовать
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
DR_ALF

Код:
#include <File.au3>

$sText = FileRead('1.txt')
$a_Array = StringRegExp($sText, '(.*)\s{1,};', 3)

_FileWriteFromArray('2.txt', $a_Array)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
DR_ALF,
Как вариант.
Код:
$sText = 'ability   ;способность, возможность' & @CRLF & _
		'able   ;знающий, умелый, способный ' & @CRLF & _
		'about   ;кругом, повсюду, приблизительно' & @CRLF & _
		'above   ;наверху, вверху, выше, над'

$sNewText = StringRegExpReplace($sText, '[^a-z\r\n]', '')
ConsoleWrite($sNewText & @LF)
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
А вот мой вариант без StrinRegExp =)
Код скрипта:
Код:
#include<Array.au3>
$FileR=FileRead("12.txt")
$string=StringSplit($FileR,@CR,2)
Local $Spos
For $i=0 To UBound($string)-1
	$Spos=(StringLen($string[$i]) - StringInStr($string[$i],Chr(59)))+1;Ищет позицию знака ";" и прибавляет к этому числу 1(для учета удаления самого знака)
	$string[$i]=StringStripWS(StringTrimRight($string[$i],$Spos),2);удаляет текст с позиции знака ";" и удаляет пробелы
Next
FileWrite("Replace.txt",_ArrayToString($string,@CR))

OffTopic:
madmasles у меня быстрее чем у вас :laugh:. А у WSWR быстрее чем у меня :whistle:(Хотя у WSWR не удаляет пробелы в конце)
 
Автор
D

DR_ALF

Новичок
Сообщения
16
Репутация
0
Благодарю всех за помощь, всё работает! madmasles, я так понял, что скрипт выдает консольные данные. Немного не разобрался как их принять.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Код:
$sText=StringRegExp($sText, '(?m)^(.+?)\h+;', 3)

Код:
$sText=StringRegExp($sText, '(?m)^(\w+?)\h+;', 3)

Код:
$sText=StringRegExp($sText, '(?m)^\w+', 3)
 
Верх