forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Поиск по файлу (http://forum.boolean.name/showthread.php?t=12391)

Ziro(AL) 18.04.2010 22:58

Поиск по файлу
 
Я создал текстовой файл с информацией о расположении моделей.
(id : имя модели : X : Y : Z)

Символам «:» сделал разделение. Как организовать поиск по файлу и чтение между разделителями если я заранее не знаю номер строки и общее количество строк.
Тоесть условие X должно быть от -52 до +52

35:house1:-50.2:50.2:50.2
36:house2:51.2:51.2:51.2
37:house3:63.2:52.2:51.2
38:house4:-53.2:53.2:52.2

В данном случае id: 35 и 36
Как можно найти эти строчки и выделить их id для дальнейшего использования?
Спасибо!

PS. В поиске, статьях, хелпе и справке по командам, не нашёл ни примеров ни одной команды относящийся к данному случаю…:4to:

Артем Валерьевич 19.04.2010 00:16

Ответ: Поиск по файлу
 
Код:

filein = ReadFile(LevelName)

While Not Eof(filein)


  Read1$ = ReadLine$( filein )
  If Mid(Read1$,1,1) <> ";" And (Read1$ <> "")
    Var$=GetStrParam$(Read1$,1)

                If Var$="Level"       
                       
                       
                       
ramb% = Int(GetStrParam$(Read1$,3))
               
gamb% = Int(GetStrParam$(Read1$,4))
               
bamb% = Int(GetStrParam$(Read1$,5))

                        AmbientLight ramb%,gamb%,bamb%


Ziro(AL) 28.04.2010 11:39

Ответ: Поиск по файлу
 
к сожалению не смог до конца разобраться (принцип работы кода понял)

не смог понять как записать нужную часть строки в переменную...
и ... Var$=GetStrParam$(Read1$,1)
это для 1 параметра (для второго додумать просто) а как можно вычислить для 3 и т.д. ?

Damp 29.04.2010 17:44

Ответ: Поиск по файлу
 
Наверно только читать весь файл ReadLine, разбирать каждую строку на параметры и уже по параметрам отсеивать что нужно.

Par0$=GetPar$(MyString$,0)
Par1$=GetPar$(MyString$,1)
...

Function GetPar$(msg$,par%=0,bChr$=":")
fs$=msg
For p=1 To par
ofs=Instr(fs,bChr)
fs$=Mid(fs,ofs+1)
If ofs=0 Return
Next
ofs=Instr(fs,bChr)
fs$=Mid(fs,1,ofs-1)
Return fs
End Function

Ziro(AL) 03.06.2010 21:57

Ответ: Поиск по файлу
 
а как можно сделать постоянное чтение из файла ?
(в момент когда кончается строчка с информацией "" чтобы файл начинал читаться заного)

Nex 04.06.2010 07:13

Ответ: Поиск по файлу
 
Ты хочешь постоянно записывать и считывать инфу из файла? оО Это очень тормозно. Лучше сделай массив и в нем все храни, а когда надо скидывай все это в файл.. Или я тебя не правильно понял? :)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot