Что нового

[Регулярные Выражения]Оставить размер, время, дату и имя + расширение

chernobeloe

Новичок
Сообщения
33
Репутация
0
Здравствуйте
как оставить из:
Код:
foA3naQs    RaNdOm 0     888 bytes 2016-02-17 13:10:26 /Root/New folder - Copy.rar
HwwskjZT    RaNdOm 0     888 bytes 2016-02-17 13:10:03 /Root/New folder.rar
qt5gwgxQ    RaNdOm 0     422.8 KiB 2016-01-23 22:27:07 /Root/app.exe
yhs0jKYD    RaNdOm 0     974.2 KiB 2016-01-23 22:35:49 /Root/arhiv.zip
e0fgiIiC    RaNdOm 0       1.6 MiB 2016-01-28 18:53:36 /Root/ss2.rar
LxJrGCSb           2             - 2016-01-25 01:00:16 /Root/FOLDER

толко:
Код:
888 bytes 2016-02-17 13:10:26 /Root/New folder - Copy.rar
888 bytes 2016-02-17 13:10:03 /Root/New folder.rar
422.8 KiB 2016-01-23 22:27:07 /Root/app.exe
974.2 KiB 2016-01-23 22:35:49 /Root/arhiv.zip
1.6 MiB 2016-01-28 18:53:36 /Root/ss2.rar
- 2016-01-25 01:00:16 /Root/FOLDER
 

ildar

Осваивающий
Сообщения
252
Репутация
30
Если количество символов слева одинаковое (которое нужно удалить), то как вариант
Код:
StringTrimLeft
 

ildar

Осваивающий
Сообщения
252
Репутация
30
Я имел ввиду
Код:
#include <Array.au3>

$file = FileOpen(@ScriptDir & '\1234.txt', 0)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$x = FileRead($file)
$aArray = StringSplit($x, @CR , 1)
For $i=0 To $aArray[0]
   $sStr = StringTrimLeft($aArray[$i], 25)
   $aArray[$i] = $sStr
Next
_ArrayDisplay($aArray)
 
Автор
C

chernobeloe

Новичок
Сообщения
33
Репутация
0
ildar сказал(а):
Я имел ввиду
Код:
#include <Array.au3>

$file = FileOpen(@ScriptDir & '\1234.txt', 0)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$x = FileRead($file)
$aArray = StringSplit($x, @CR , 1)
For $i=0 To $aArray[0]
   $sStr = StringTrimLeft($aArray[$i], 25)
   $aArray[$i] = $sStr
Next
_ArrayDisplay($aArray)

Спасибо, ваш вариант подходит, а есть ли способ разбить на ячейки массива типа:
Код:
[размер][дата время][папка/имя.расширение]
[размер][дата время][папка/имя.расширение]
[размер][дата время][папка/имя.расширение]
[размер][дата время][папка/имя.расширение] и т.д.
?
 

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Код:
;.........
$sStr = StringTrimLeft($aArray[$i], 25)
$arr   = StringRegExp($sStr, '(?si)\s{0,9}(.*?\s.*?)\s(.*?\s.*?)\s(.*)',3)
_ArrayDisplay($arr)
;............
 
Автор
C

chernobeloe

Новичок
Сообщения
33
Репутация
0
Код:
#include <Array.au3>

$file = FileOpen(@ScriptDir & '\test.txt', 0)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$x = FileRead($file)
$aArray = StringSplit($x, @CR , 1)
For $i=0 To $aArray[0]
$sStr = StringTrimLeft($aArray[$i], 25)
$arr   = StringRegExp($sStr, '(?si)\s{0,9}(.*?\s.*?)\s(.*?\s.*?)\s(.*)',3)
_ArrayDisplay($arr)
Next


но как все массивы вместе вывести в удобно читабельном виде?
здесь выводится в столбик, а хочется в строчку как:
размердата времяпапка/имя.расширение
размердата времяпапка/имя.расширение
размердата времяпапка/имя.расширение
размердата времяпапка/имя.расширение


Добавлено:
Сообщение автоматически объединено:

решил так
Код:
#include <Array.au3>
Dim $mas[1][3]
;_ArrayDisplay($mas, '$mas')

$file = FileOpen(@ScriptDir & '\test.txt', 0)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$x = FileRead($file)
$aArray = StringSplit($x, @CRLF , 1)
For $i = 0 To UBound($aArray) - 1
$sStr = StringTrimLeft($aArray[$i], 26)
$arr   = StringRegExp($sStr, '(?si)\s{0,9}(.*?\s.*?)\s(.*?\s.*?)\s(.*)',3)
;_ArrayDisplay($arr,'$arr')
_ArrayTranspose($arr)
_ArrayConcatenate($mas, $arr)
Next
_ArrayDisplay($mas,'mass')
 
A

Alofa

Гость
Или так:
Код:
#include <Array.au3>

Local $asArray[0][3]
$hFile = FileOpen(@ScriptDir & '\Test.txt')
If $hFile = -1 Then Exit MsgBox(4096, 'Ошибка', 'Невозможно открыть файл.')

While 1
	$sLine = FileReadLine($hFile)
	If @error = -1 Then
		FileClose($hFile)
		ExitLoop
	EndIf
	$asRes = StringRegExp($sLine, '.+\h{3,}(.+)\h([\d|-]+\h[\d|\:]+)\h(/Root.+)', 3)
	If Not @error Then
		$i = UBound($asArray)
		ReDim $asArray[$i + 1][3]
		$asArray[$i][0] = $asRes[0]
		$asArray[$i][1] = $asRes[1]
		$asArray[$i][2] = $asRes[2]
	EndIf
WEnd

;_ArrayDisplay($asArray)
_ArrayDisplay($asArray, 'Результат:', Default, 32 + 64, Default, 'Размер|Дата|Путь + Файл', Default, 0xFFFCA3)


chernobeloe сказал(а):
Код:
$file = FileOpen(@ScriptDir & '\test.txt', 0) ; Открыть-то открыли, а Закрыть забыли.
 
Верх