Показать сообщение отдельно
  #27  
Старый 29.06.2011, 18:14
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Код:
function NameRevision(S:String):boolean; //посылаем в функцию строку с именем файла 
const A: array [0..7] of byte = (7,8,10,11,13,14,15,16); //Номера символов которые должны быть буквами
var i,x:Cardinal; //Да, просто отрицательных порядковых номеров быть не может
begin
Result:=False;
if Length(S)=0 then exit; //Если строка пуста выходим из процедуры
Result:=True; //изначально предпологаем, что имя удовлетворяет виду.
For i:=1 to Length(S) do 
  if S[i]='\' then x:=i; // в пути к файлу ищем разделители последний остается в памяти
Delete(S,1,x);  //удаляем в строке с путем кфайлу все кроме имени файла
Form1.Caption:=S;//Это не надо тестил забул удалить))) 
if (Length(S)<>20) {тут понятно} or (Pos('saved',S)<>1) {если в строке S слово "saved" не первое или отсутствует} or (S[6]<>' ') or (S[9]<>'-')
    or (S[12]<>'-') or (S[17]<>'.') or (S[18]<>'t')
    or (S[19]<>'x') or (S[20]<>'t') then // с остальными условиями ясно
  begin
    Result:=False; //возвращаем значение в ложь, если мы неубедили программу в том, что форма имени файла нам удовлетворяет
    exit; //Выйти из функции т.к. имя нам уже не подходит
  end;
for i:=0 to Length(A)-1 do
  if not (S[A[i]] in ['0'..'9'])then Result:=False; //Проверка что стоит там где должны стоять цифры
end;
Ответить с цитированием