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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2011, 17:24   #1
CrazyTosser
 
Регистрация: 06.02.2011
Сообщений: 5
Печаль Проблема с цифрами

Вот часть программы:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
sph:string;
m:array[1..1000] of string;
numb:integer;
num:string;
spisok:textfile;

begin
            for x:=1 to 5 do 
numb:=0;
sph:='aaa';
For j:=1 to 10 do
begin
if pos(sph,m[i]) <> 0 then
numb:=numb+1;
end;
num:=floattostr(numb);

assignfile(spisok,'ticket.txt');    

append(spisok);           
      
       writeln(spisok,num);
closefile(spisok);
         end;
end.
прога ищет кол-во строк массива, начинающихся на ааа
остальная часть программы работает на ура.
проблема лишь в этой части.
все работает, но в файле ticket.txt вместо цифр везде 0.
Проверено, в массиве такие строки существуют.

Хелп.

Последний раз редактировалось Stilet; 06.02.2011 в 19:04.
CrazyTosser вне форума Ответить с цитированием
Старый 06.02.2011, 17:32   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
for x:=1 to 5 do
ет зачем нужно?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 06.02.2011, 19:08   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-вторых:массив m:array[1..1000] of string; локален, и нигде не заполняется значениями, потому тебе поиск ничего не не находит.
Да и потом
Цитата:
прога ищет кол-во строк массива, начинающихся на ааа
Ерунда потому что ты используешь
Цитата:
if pos(sph,m[i]) <> 0 then
А он ищет не только в начали но и вообще в строке.
Ты уж определись чего тебе надебно то.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.02.2011, 20:44   #4
CrazyTosser
 
Регистрация: 06.02.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
ет зачем нужно?
У меня файлы на диске в формате Xml я открываю с 1 по 5 и работаю с каждым



Массив заполняется текстом каждого файла

for i:=1 to 5 do
begin
form1.Memo1.Clear;
k:=k+1;
v:=floattostr(k);
namefile:=v+'.Xml';
assignfile(ai,v+'.Xml');
reset(ai);

while true do
begin
readln(ai,s);
if eof(ai) then break;
i:=i+1;
m[i]:=s;
form1.Memo1.Lines.Add(s);
end;
...

Последний раз редактировалось CrazyTosser; 06.02.2011 в 20:51.
CrazyTosser вне форума Ответить с цитированием
Старый 06.02.2011, 20:45   #5
CrazyTosser
 
Регистрация: 06.02.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение

А он ищет не только в начали но и вообще в строке.
Ты уж определись чего тебе надебно то.
Если я пишу pos... <> 0 то положение искомого должно быть в начале, я так понял.
CrazyTosser вне форума Ответить с цитированием
Старый 06.02.2011, 21:01   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

<> 0 значит, что подстрока где-то найдена. Если нужно именно начало, то pos() = 1.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 07.02.2011, 08:39   #7
CrazyTosser
 
Регистрация: 06.02.2011
Сообщений: 5
По умолчанию

Проблема только в этом цикле
For j:=1 to 10 do
begin
if pos(sph,m[i]) <> 0 then
numb:=numb+1;
end;
num:=floattostr(numb);
на выходе получается 0
Вроде нигде не зануляется.
CrazyTosser вне форума Ответить с цитированием
Старый 07.02.2011, 08:44   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Конечно будет проблема, если гонять цикл по j, а в качестве индекса брать i )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 07.02.2011, 09:00   #9
CrazyTosser
 
Регистрация: 06.02.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Конечно будет проблема, если гонять цикл по j, а в качестве индекса брать i )
Точно, спасибо большое!

Последний раз редактировалось CrazyTosser; 07.02.2011 в 09:02.
CrazyTosser вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пробелы между цифрами duny99 Помощь студентам 9 06.02.2011 13:24
Заполнения массива разными цифрами у VB legendary Помощь студентам 1 30.11.2010 18:07
Прога со строками и цифрами anybkarnak Общие вопросы C/C++ 1 08.03.2010 21:19
Сортировка столбца с цифрами San4o SQL, базы данных 4 20.01.2010 15:15
Работа с натуральными цифрами в Делфи Cartman18 Помощь студентам 4 16.04.2008 14:38