Guest User

Untitled

a guest
Jan 19th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. const NoValid = 'save';
  2.  
  3. if Pos(Edit1.Text, NoValid) <> 0 then
  4. begin
  5. ShowMessage('Обрабатывать в файлы в указанной папке запрещено');
  6. Exit;
  7. end;
  8.  
  9. // Получаем путь к запрещенной папке, без на конце
  10. restrictedPath := ExtractFilePath(Application.ExeName) + 'save';
  11.  
  12. // Проверяемый путь приводим к стандартному виду,
  13. // чтобы нам не подсунули ".save" или "каталог программыsave..save"
  14. testPath := ExcludeTrailingPathDelimiter(ExpandFileName(Edit1.Text));
  15.  
  16. if SysUtils.SameText(testPath, restrictedPath) then
  17. begin
  18. ShowMessage('Обрабатывать в файлы в указанной папке запрещено');
  19. Exit;
  20. end;
  21.  
  22. procedure TForm1.Button1Click(Sender: TObject);
  23. var
  24. s, s1, s2: string;
  25. p, p2: integer;
  26. begin
  27. // Строка где ищем
  28. s := Edit1.Text;
  29. // Слово 1 по которому ищем (с большой буквы)
  30. s1 := 'Save';
  31. // Слово 1 по которому ищем (с маленькой буквы)
  32. s2 := 'save';
  33. // Осуществляем поиск в Edit используя функцию Pos
  34. p := pos(s1, s);
  35. p2 := pos(s2, s);
  36.  
  37. { Проверка: Если в строке (Edit) существует слово - Save (с большой буквы) }
  38. if p > 0 then // если слово есть
  39. begin
  40. // если слово первое
  41. if ((p = 1) and (s[p + length(s1)] = ''))
  42. // или в середине
  43. or ((s[p - 1] = '') and ((s[p + length(s1)] = '')
  44. // или в конце
  45. or (p + length(s1) - 1 = length(s))))
  46. // Тогда очищаем Edit
  47. then Edit1.clear;
  48. // И выводим сообщение
  49. ShowMessage('Обрабатывать в файлы в указанной папке запрещено');
  50. // Выходим
  51. Exit
  52. end;
  53.  
  54. { Проверка: Если в строке (Edit) существует слово - Save (с маленькой буквы) }
  55. if p2 > 0 then // если слово есть
  56. begin
  57. // если слово первое
  58. if ((p2 = 1) and (s[p2 + length(s2)] = ''))
  59. // или в середине
  60. or ((s[p2 - 1] = '') and ((s[p2 + length(s2)] = '')
  61. // или в конце
  62. or (p2 + length(s2) - 1 = length(s))))
  63. // Тогда очищаем Edit
  64. then
  65. Edit1.clear;
  66. // И выводим сообщение
  67. ShowMessage('Обрабатывать в файлы в указанной папке запрещено');
  68. // Выходим
  69. Exit
  70. end;
  71. end;
Add Comment
Please, Sign In to add comment