Русское сообщество AutoIt

  • Май 22, 2012, 14:24:28 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: Извлечение информации из файла с промежутками  (Прочитано 756 раз)

0 Пользователей и 1 Гость смотрят эту тему.

_Lexa98_ [?]

  • Новичок
  • *
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Есть файл в котором написано:
-----file.exe-----
thnboisuvuhvmv25bv525tostuvnmostv52tv52v52mugtposuhjhjpotjijgh89k5uc0-5tv4v5c25vy5y409wvm584v5
-----file1.exe-----
c4hj937vt02nm15-8bv46bm4=90120=6bu71807v0m3n90bv6m,1c8974n8b71n03984vm81vm89031475v7v185v1nm9077v1m8907438957v871m807v5v091
Как в
первый msgbox = file.exe

второй = thnboisuvuhvmv25bv525tostuvnmostv52tv52v52mugtposuhjhjpotjijgh89k5uc0-5tv4v5c25vy5y409wvm584v5
Nhtnbq

третий = file1.exe

четвертый = c4hj937vt02nm15-8bv46bm4=90120=6bu71807v0m3n90bv6m,1c8974n8b71n03984vm81vm89031475v7v185v1nm9077v1m8907438957v871m807v5v091

показать информацию?
« Последнее редактирование: Февраль 13, 2012, 21:49:24 от _Lexa98_ »



  Записан

Zaramot [?]

  • AutoIt Гуру
  • *****
  • Репутация: 456
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 887
  • Версия AutoIt: v3.3.8.1
  • I ♥ AutoIt
    • Награды
Re: Извлечение информации из файла
« Ответ #1, Отправлен: Февраль 12, 2012, 19:57:51 »
Если строки 4, то можно сделать так:
Код: AutoIt [Выделить]
For $i = 1 to 4
    MsgBox(0, '', StringRegExpReplace(FileReadLine(@ScriptDir & '\test.txt', $i), '-----', ''))
Next
Но если их больше или неизвестно сколько из - то так:
Код: AutoIt [Выделить]
#include <File.au3>

$Lines = _FileCountLines(@ScriptDir & '\test.txt')
For $i = 1 to $Lines
    MsgBox(0, '', StringRegExpReplace(FileReadLine(@ScriptDir & '\test.txt', $i), '-----', ''))
Next
« Последнее редактирование: Февраль 12, 2012, 20:40:59 от Zaramot »



  Записан

sngr [?]

  • Продвинутый
  • ***
  • Репутация: 91
  • Offline Offline
  • Сообщений: 254
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #2, Отправлен: Февраль 12, 2012, 19:59:30 »
Код: AutoIt [Выделить]
For $i=1 To 4
    $file=FileReadLine(@ScriptDir & '\12',$i)
    If $i=1 or 3 Then
    MsgBox(0,'',StringReplace($file,'-',''))
    Else
    MsgBox(0,'',$file)
    EndIf
Next




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #3, Отправлен: Февраль 12, 2012, 20:28:41 »
Zaramot
sngr
Не почучается :(
Файл




  Записан

Zaramot [?]

  • AutoIt Гуру
  • *****
  • Репутация: 456
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 887
  • Версия AutoIt: v3.3.8.1
  • I ♥ AutoIt
    • Награды
Re: Извлечение информации из файла
« Ответ #4, Отправлен: Февраль 12, 2012, 20:34:43 »
Цитата
Есть файл в котором написано:
-----file.exe-----
thnboisuvuhvmv25bv525tostuvnmostv52tv52v52mugtposuhjhjpotjijgh89k5uc0-5tv4v5c25vy5y409wvm584v5
-----file1.exe-----
c4hj937vt02nm15-8bv46bm4=90120=6bu71807v0m3n90bv6m,1c8974n8b71n03984vm81vm89031475v7v185v1nm9077v1m8907438957v871m807v5v091
Там вообще таких строк нет.




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #5, Отправлен: Февраль 12, 2012, 20:36:42 »
Я показал примерно...




  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Re: Извлечение информации из файла
« Ответ #6, Отправлен: Февраль 12, 2012, 21:01:29 »
_Lexa98_  [?]
Цитата
Я показал примерно.
Примерно с регулярными выражениями не получится. С Вашим текстом из первого поста:
Код: AutoIt [Выделить]
#include <Array.au3>

$sRead = FileRead(@ScriptDir & '\1.txt')

$aTemp = StringRegExp($sRead, '(?:-{5})(.*?)(?:-{5})', 3)
If @error Then Exit 100
Dim $aRes[UBound($aTemp) + 1][2] = [[UBound($aTemp)]]
For $i = 1 To $aRes[0][0]
    $aRes[$i][0] = $aTemp[$i - 1]
    $aRes[$i][1] = StringRegExpReplace($sRead, '(?s).*' & $aRes[$i][0] & '.*?\r?\n(.*?)(?:\r?\n|$).*', '$1')
    If @extended <> 1 Then $aRes[$i][1] = ''
Next
$sRead = ''
$aTemp = ''
_ArrayDisplay($aRes)

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #7, Отправлен: Февраль 12, 2012, 21:15:03 »
madmasles  [?]
Цитата
с регулярными выражениями не получится
тоесть с
_Lexa98_  [?]
Цитата
Не почучается Файл
неполучится




  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Re: Извлечение информации из файла
« Ответ #8, Отправлен: Февраль 12, 2012, 21:17:21 »
_Lexa98_,
А что в нем надо найти?




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #9, Отправлен: Февраль 13, 2012, 13:31:08 »
madmasles  [?]
Цитата
А что в нем надо найти?
Описание в первом посте. значения все время меняются.




  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Re: Извлечение информации из файла
« Ответ #10, Отправлен: Февраль 13, 2012, 14:26:22 »
_Lexa98_  [?]
Цитата
Описание в первом посте
Я не нашел в Вашем файле строк из первого поста. Или говорите точнее, что искать, или ищите сами.




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #11, Отправлен: Февраль 13, 2012, 14:46:16 »
madmasles
Нужно вывести отсюда:
1,2,3,4 - msgboxы
1)slui.exe (без -)
2)то что ниже -----slui.exe-----
3)taskmgr.exe (без -)
4)то что ниже -----taskmgr.exe-----




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #12, Отправлен: Февраль 13, 2012, 17:39:00 »
Помогите кто нить :(




  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Re: Извлечение информации из файла
« Ответ #13, Отправлен: Февраль 13, 2012, 18:21:42 »
_Lexa98_,
Код: AutoIt [Выделить]
#include <Array.au3>

$hFile = FileOpen(@ScriptDir & '\file.mif', 16)
$sRead = FileRead($hFile)
FileClose($hFile)
$sRead = Hex($sRead)
$sFirst = Hex(Binary('-'))
$sSecond = Hex(Binary(@CRLF))
$aTemp = StringRegExp($sRead, '(?:' & $sFirst & '){5}(.*?)(?:' & $sFirst & '){5}', 3)
If @error Then Exit 100
Dim $aRes[UBound($aTemp) + 1][2] = [[UBound($aTemp)]]
For $i = 1 To $aRes[0][0]
    $aRes[$i][0] = $aTemp[$i - 1]
    $aRes[$i][1] = StringRegExpReplace($sRead, '(?s).*' & $aRes[$i][0] & '.*?' & $sSecond & '(.*?)(?:' & $sSecond & '|$).*', '$1')
    If @extended <> 1 Then $aRes[$i][1] = ''
    $aRes[$i][0] = BinaryToString('0x' & $aRes[$i][0])
    $aRes[$i][1] = StringRegExpReplace(BinaryToString('0x' & $aRes[$i][1]), '(?i)[^a-z \.]', '')
Next
$sRead = ''
$aTemp = ''
$sFirst = ''
$sSecond = ''
_ArrayDisplay($aRes)




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Извлечение информации из файла
« Ответ #14, Отправлен: Февраль 13, 2012, 19:17:37 »
madmasles
Спасибо, но все равно немного не то получается. :)
Придумаю что нибудь другое :)
Будем считать что тема решена :)
« Последнее редактирование: Февраль 13, 2012, 21:20:38 от _Lexa98_ »



  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
[Файловая система] Извлечение CD
AutoIt для новичков
Fever 5 1475 Последний ответ Январь 24, 2010, 00:27:25
от Yashied
Извлечение всех url из текстового файла
AutoIt для новичков
o_nix 13 1717 Последний ответ Март 17, 2010, 10:21:49
от o_nix
Извлечение USB через HotPlug.dll
AutoIt для новичков
Nevich 4 1282 Последний ответ Март 17, 2010, 15:45:35
от Yashied
Функция вычленения информации из файла с применением double переменных.
Стол заказов
VitAl2013 0 748 Последний ответ Март 31, 2010, 14:11:23
от VitAl2013
[RegExp] Извлечение данных из строки
Регулярные выражения и прочее
f4llen 7 1533 Последний ответ Июль 25, 2010, 16:59:28
от f4llen
[Данные, строки] Извлечение из txt переменных.
AutoIt для новичков
Pringles 1 696 Последний ответ Ноябрь 30, 2010, 00:01:54
от madmasles
Извлечение файлов из архива
AutoIt для новичков
pan1982 2 898 Последний ответ Март 10, 2011, 09:20:23
от pan1982
извлечение информации из user32.dll
AutoIt для новичков
yukuru 6 632 Последний ответ Август 15, 2011, 11:23:43
от Yashied
[RegExp] Извлечение числа из (скобок)
Регулярные выражения и прочее
Trans 6 651 Последний ответ Октябрь 21, 2011, 13:16:54
от Trans
Перенесено: Извлечение информации из файла
AutoIt для новичков
madmasles 0 118 Последний ответ Февраль 12, 2012, 20:58:30
от madmasles


Реклама