Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 13.11.2010, 18:00   #1
АгниКай
AnyKey`щик
 
Регистрация: 10.11.2010
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Помогите пожалуйста, мне такое пока сложно осилить.
Надо чтобы цыкл открывал файл, читал 1ую строку, проверял совпадает она с текстом в переменной или нет и закрывал файл.
Если совпадает строка то стоп, если нет то читать следующий файл.
Или как-то так:
while not n$=read1
а тут уже надо чтобы файлы открывал по очереди, от 1 до 10
wend
Написал так, ничего не происходит. В одном из файлов есть такая строчка
While Not sd$=read1$
For i=1 To 10
filess=ReadFile("D:\d\"+i+".txt")
read1$=ReadLine(filess)
CloseFile(filess)
Next

Flip
Wend
Вот вроде бы норм все, но он не останавливается.
Graphics 800,600,8,2
SetBuffer BackBuffer()
Global sd$="asd"
Global Read1$
Global I
While Not i=10
For i=1 To 10
filess=ReadFile("D:\d\"+i+".txt")
read1$=ReadLine(filess)
CloseFile(filess)
If sd$=read1$ 
Print "Eeeeeeee..." 
EndIf
Next
Flip
Wend
End
Вот так подправил:
Graphics 800,600,8,2
SetBuffer BackBuffer()
Global sd$="asd"
Global read1$
Global i
Global filess
While Not i=10
For i=1 To 10
filess=OpenFile("D:\d\"+i+".txt")
read1$=ReadLine(filess)
CloseFile(filess)
If sd=read1
filess=OpenFile("D:\d\"+i+".txt")
WriteLine(filess,"строка")
Print "Eeeeeeee..." 
EndIf
Next
Flip
Wend
End
Странно что он выводит очень много надписей типа "Eeeeeeee..." и только спустя секунд 10 происходит ошибка "Stream does not exist" и после ошибки перезаписывается файл.

Последний раз редактировалось Randomize, 13.11.2010 в 19:10.
(Offline)
 
Ответить с цитированием
Старый 13.11.2010, 19:09   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: цыкл

Ты запарил плодить сообщения! Для этого есть кнопка "Правка". За сегодня это уже второй раз!
И цикл пишется через И.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
baton4ik (13.11.2010), pepel (13.11.2010), St_AnGer (13.11.2010)
Старый 13.11.2010, 19:11   #3
АгниКай
AnyKey`щик
 
Регистрация: 10.11.2010
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: цыкл

Что плодил??? Если уж и написал что-то то лучше бы помог, а то придумал чо-то себе...
(Offline)
 
Ответить с цитированием
Старый 13.11.2010, 19:22   #4
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: цыкл

Твои попытки что-либо написать кодом не соответствуют твоемуже вопросу в начале.
Конструкция While..Wend зачем?
WriteLine зачем?
Опиши нормально что тебе нужно и тогда тебе напишут годный алгоритм.

Из того, что я понял:
Есть 10 txt файлов. Их читаем и проверяем первую строку.
Если нашли, то выводим что-либо, если нет то что?
Закончились 10 файлов и ни в одном нету нужной записи и что тогда?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
baton4ik (13.11.2010), pepel (13.11.2010)
Старый 13.11.2010, 19:30   #5
АгниКай
AnyKey`щик
 
Регистрация: 10.11.2010
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: цыкл

Сообщение от Randomize Посмотреть сообщение
Из того, что я понял:
Есть 10 txt файлов. Их читаем и проверяем первую строку.
Если нашли, то выводим что-либо, если нет то что?
Закончились 10 файлов и ни в одном нету нужной записи и что тогда?
Если не нашли, то ничего. Закончились тоже ничего. Мне только надо чтобы он находил файл с нужной строкой(если такой файл существует) и останавливался.
WriteLine, я сделал, потому что считал, что если он найдет файл и перезапишет его, то остановится, что не вышло.
А While ... Wend тоже для такой же цели, чтобы когда i=10 он останавливался, а цикл проходит раз 50.
(Offline)
 
Ответить с цитированием
Старый 13.11.2010, 20:01   #6
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: цыкл

Если б ты хоть немного учил основы, ты бы знал, что WEND не сработает, пока ты в цикле for, поэтому твоя конструкция совершенно бессмысленна.
(Offline)
 
Ответить с цитированием
Старый 14.11.2010, 02:43   #7
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: цыкл

Программа для этой темы:
http://ifolder.ru/20260564
(размер архива 666 б.)

Graphics 800,600,8,2
SetBuffer BackBuffer
()

Global 
sd$="Кто здесь?"
Global i
Global filess

SeedRnd
(MilliSecs()) ; включение неповторения в мозге ЭВМ

For i=1 To 10
    filess
=OpenFile("D:\d\"+i+".txt")
    If filess<>0 ; тут точно не знаю.. сначало думал <>Null . Но <>0 ( не равно нулю - помогла). в папке создал только чётные файлы 2.txt 4.txt 6.txt и т.д.
        read1$=ReadLine(filess) ; короче, если файл есть - значит читаем
        CloseFile(filess) ; - закроем файл, чтобы потом можно было его переоткрыть
        
        If read1$=sd$ Then ; - найдено что надо
            Color Rand(0,255),Rand(0,255),Rand(0,255) ; - это для наглядности смена цвета нужного текста
            filess=OpenFile("
D:\d\"+i+".txt")
            WriteLine(filess,"
Кто здесьТут был Вася!")
            CloseFile(filess) ; - закроем ещё раз файл, так как открывали до этого во второй раз
            Text 10,14*i,Str(i)+"
"+read1$+"     ВАСЯ НАЙДЕН!!!"    
        Else
            Color 255,255,255
            Text 10,14*i,Str(i)+"
"+read1$
        EndIf
    EndIf
Next

Flip 
Программа, файл одноразовый.. Чтобы ещё раз проверить действенность - редактируй в файле текст который нужно искать
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
АгниКай (14.11.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:16.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com