Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2013, 20:30   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Вытащить часть строки из имени файла

Задача такая,найти все файлы по шаблону в папке с программой (без внутренних каталогов),например:
Dump_02B60000_00040000.bin
Открываем его через CreateFile,далее необходимо выдернуть из имени 2 параметра:
02B60000
00040000

Как проще всего это сделать?
calypso вне форума Ответить с цитированием
Старый 16.02.2013, 20:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Искать по FindFirst() FindNext().
Открывал бы я его через TFileStream.
Насчет параметров обычные Copy() Pos() Delete() помогут разделить имя файла на части. Или:
Код:
with TStringList.create do begin 
 Delimiter:='_'; 
 DelimitedText:='Dump_02B60000_00040000';
 ...
 теперь Strings[] является массивом с разделенными частями в имени файла
 ...
free;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.02.2013, 20:46   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

uses StrUtils;
Код:
var
  s, s1, str : string;
  i, i1 : integer;
begin
  str := 'Dump_02B60000_00040000.bin';
  i := pos('_', str);    // получаем индекс первого "подчеркивания"
  i1 := posex('_',str,i+1); // получаем индекс второго "подчеркивания"
  s := copy(str,i+1, i1-i-1); // получаем первый параметр
  s1 := copy(str,i1+1, Length(str)-i1-4); // получаем второй параметр отсекая сразу и расширение файла (-4)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 16.02.2013, 20:50   #4
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Ну как искать файл я совсем недавно писал ТУТ
очевидно что искать нужно по маске *.bin так же судя по всему формат названия всегда един т.е. Dump_XXXXXXXX_YYYYYYYY.bin следовательно можно чекать строки как-то так:
Код:
{$APPTYPE CONSOLE}
const
  st='Dump_02B60000_00040000.bin';

type
  Param = record
    a : string;
    b : string;
  end;

function CheckParam(fName : string) : Param;
begin
Result.a:=copy(fName,6,8);
Result.b:=copy(fName,15,8);
end;

var
  p : Param;
begin
p := CheckParam(st);
writeln(p.a);
writeln(p.b);
readln;
end.
execom вне форума Ответить с цитированием
Старый 17.02.2013, 20:31   #5
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Цитата:
очевидно что искать нужно по маске *.bin так же судя по всему формат названия всегда един т.е. Dump_XXXXXXXX_YYYYYYYY.bin
Да это файлы дампа памяти,ХХХХХХХХ это адрес смещения в памяти,а YYYYYYYY размер блока памяти.Прога будет их обнаруживать и автоматически проецировать в память
calypso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить часть текста и QTextEdit Asdprom Qt и кроссплатформенное программирование С/С++ 2 13.08.2012 14:53
[Орешек] Обновления истории найденных на ПК файлов... 2 строки 2 одинаковых имени файла но разные пути... Человек_Борща Общие вопросы Delphi 2 03.07.2011 14:31
Чтение строк через fgets() из unicode-файла, Считывает лишь часть строки. malor Общие вопросы C/C++ 1 25.06.2011 23:49
Макрос: часть имени файла прибавить к значению ячейки Обыватель Microsoft Office Excel 4 20.12.2010 19:41
Парсинг строки имени файла NieL Общие вопросы Delphi 3 17.12.2010 14:49