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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2007, 19:50   #1
Garacio
 
Регистрация: 17.12.2006
Сообщений: 3
По умолчанию Головоломка со строкой

В текстовом файле (777.txt) хранится отчёт о работе базы данных. Если во время работы никаких ошибок не было, то в последней строчке указанного файла будет 6 одинаковых чисел. Примерно так:
12.11.2006 game home doc 9 0 7 8 9 67890 67890 67890 67890 67890 67890 :; 6
Числа 67890 67890 67890 67890 67890 67890 идут подряд через один или несколько пробелов.
Вопрос с «выдёргиванием» последней строчки из 777.txt я решил так:
Source:=TstringList.Create;
Source.LoadFromFile('C:\Log\777.txt ');
R := Source[Source.Count-1];
Остаётся главный вопрос: как полученную строку проверить на наличие 4-х неизвестных «67890 67890 67890 67890 67890 67890», исключая [',', ';', ':', ' ', 'A'..'Z', 'a'..'z']?
Почему не 6-ти? – На случай ошибки в БД!
Т.е. нужно в Memo получить:
Если 67890 67890 67890 67890 67890 67890 то Memo1.Lines.Add(‘Тест пройден’);
Если 67890 12345 67890 67890 67890 67890 то Memo1.Lines.Add(‘Ошибка ’+Chisla);
Если 67890 67890 12345 12345 67890 67890 то Memo1.Lines.Add(‘Ошибка ’+Chisla);
Garacio вне форума Ответить с цитированием
Старый 04.02.2007, 21:30   #2
psyke
Пользователь
 
Аватар для psyke
 
Регистрация: 08.01.2007
Сообщений: 41
По умолчанию

считай файл в TStrings, возьми последнюю, да замочи TStrings. какие проблемы, потом циклом считывай числа до первого встречного пробела, в массив. сколько чисел ты знаешь. осталось только сравнить.

а думать ты и не хотел вовсе.

задумайся:

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
s = 'qwerty qwerty qwerty';
var
i,j: Byte;
begin
j:=0;
for i:=0 to length(s) do
if ord(s[i]) = 32 then
inc(j);
MessageBox(0,pchar('В строке '+IntToStr(j)+' пробелов'),'Space',$24);
end;
а вообще вот:
Код:
function Proverka(s: String): Bool;
var
arr: array[0..5] of String[10];
i,t: Integer;
N: byte;
begin
result:=false;
t:=0;
for i:=0 to 5 do
arr[i]:='';

for i:=1 to length(s) do
begin
if s[i] = chr(32) then
inc(t)
else
arr[t]:=arr[t]+s[i]
end;

for i:=0 to 4 do
if not (arr[0] = arr[i+1]) then
begin
result:=false;
end else result:=true;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
If proverka('123 123 123 123 123') then
ShowMessage('Совпали!!') else Showmessage('Не совпали!');
end;
работает только с 6-ю числами, как только находит пробел (один) в строке, читает второе число. накидал за 5 минут, не универсализировал! на учёбу опаздываю

Последний раз редактировалось psyke; 04.02.2007 в 22:26.
psyke вне форума Ответить с цитированием
Старый 06.02.2007, 08:03   #3
Garacio
 
Регистрация: 17.12.2006
Сообщений: 3
По умолчанию

Вот если бы было:If proverka('??? ??? ??? ??? ???') then...Это же БД! Сейчас там 123 записи, а завтра 246!
Garacio вне форума Ответить с цитированием
Старый 06.02.2007, 09:31   #4
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

а вот я так и не понял, проверяем только последнюю строку ?
а если выделить число, и искать в осnавшейся строке его еще 5 раз ?
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 07.02.2007, 01:38   #5
psyke
Пользователь
 
Аватар для psyke
 
Регистрация: 08.01.2007
Сообщений: 41
По умолчанию

ну и чё? отпирайся от данного примера. есть ф-я EOLN, думай.
я ж тебе показал как посчитать пробелы между числами...
psyke вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Головоломка Vali_T Помощь студентам 9 24.05.2008 12:30
головоломка =) Exo Microsoft Office Excel 4 14.04.2008 17:06
интересная головоломка Vereshagina Помощь студентам 9 11.03.2008 10:16
Головоломка! Selena SQL, базы данных 1 14.11.2007 11:43