Показать сообщение отдельно
  #26  
Старый 29.06.2011, 17:34
us8ihj us8ihj вне форума
Прохожий
 
Регистрация: 18.06.2011
Сообщения: 19
Репутация: 10
По умолчанию

Понятно, но не всё. Ниже, в комментариях к строкам я написал что до меня дошло, а что неочень. Или же где-то сомневаюсь.
Код:
function NameRevision(S:String):boolean; //посылаем в функцию строку с именем файла 
const A: array [0..7] of byte = (7,8,10,11,13,14,15,16); //что это значит??
var i,x:Cardinal; //я так понимаю, можно было использовать integer
begin
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;


Извиняюсь, если много вопросов, но я хочу понять и полностью осознавать что делаю на 100%. Так в будущем будет меньше непоняток..)
Ответить с цитированием