On-line: Andrey, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 979
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.09 01:26. Заголовок: Как записать в INI-файл массив ?


Столкнулся с непоняткой....

Раньше использовал свою обработку INI-файлов.

Перешел на стандартный Харборовский....
Не могу понять, как записать в секцию МАССИВ - например список файлов ?
И как потом считать его в массив ?


BEGIN INI File cFileIni
GET cPubPathFrom SECTION "SETTINGS" ENTRY "From" DEFAULT "C:\XLS-2009"
GET cPubPathTo SECTION "SETTINGS" ENTRY "To" DEFAULT "C:\DBF-2009"
GET cPubFileMaska SECTION "SETTINGS" ENTRY "MASK" DEFAULT "*.xls"
GET aDim SECTION "FILE_LIST" ???????
END INI

И еще, можно ли записывать и считывать 2-3 мерный массив....
У меня было можно, например:
[Список_файлов]
Файл_1 = { "spiski.xls", .T., "обработан ", 20, NIL }
Файл_2 = { "centr.xls", .F., "не обработан", 12, NIL }


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 25 , стр: 1 2 All [только новые]





Пост N: 114
Зарегистрирован: 05.06.07
ссылка на сообщение  Отправлено: 04.12.09 03:17. Заголовок: 1. для более гибкой ..


1.
для более гибкой работы с ИНИ-файлами лучше пользоваться исходными функциями
в их числе есть такие
*-----------------------------------------------------------------------------*
Function _GetSectionNames(cIniFile)
Return ( aSectionList )
*-----------------------------------------------------------------------------*
Function _GetSection( cSection, cIniFile )
Return ( aKeyValueList )


2. У меня массивы из текстового вида преобразуются в нормальный так
aFromClipBoard:=&(cTxt)



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 990
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.12.09 23:55. Заголовок: SADSTAR2 пишет: У м..


SADSTAR2 пишет:

 цитата:
У меня массивы из текстового вида преобразуются в нормальный так aFromClipBoard:=&(cTxt)



А более подробней можно ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 770
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 05.12.09 21:58. Заголовок: Andrey пишет: Раньш..


Andrey пишет:

 цитата:
Раньше использовал свою обработку INI-файлов.
Перешел на стандартный Харборовский....



 цитата:
BEGIN INI File cFileIni
GET cPubPathFrom SECTION "SETTINGS" ENTRY "From" DEFAULT "C:\XLS-2009"
GET cPubPathTo SECTION "SETTINGS" ENTRY "To" DEFAULT "C:\DBF-2009"
GET cPubFileMaska SECTION "SETTINGS" ENTRY "MASK" DEFAULT "*.xls"
GET aDim SECTION "FILE_LIST" ???????
END INI


Это не Путь Воина.
Я укажу вам Истинный путь
Скрытый текст




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 115
Зарегистрирован: 05.06.07
ссылка на сообщение  Отправлено: 07.12.09 03:28. Заголовок: пример из передачи о..


пример из передачи описания объекта через Клипборд
записываешь массив в текст в таком же виде как при написании программы
живой пример
{7,"GRID","GRID_1",{{"ALLOWEDIT","L",".F.",.T.,.F.},{"BACKCOLOR","AC","Nil",.F.,.T.,1},{"BREAK","L",".F.",.T.,.F.},{"COL","N","10",.T.,.T.,1},{"COLUMNCONTROLS","AT","Nil",.T.,.F.},{"COLUMNVALID","AT","Nil",.T.,.F.},{"COLUMNWHEN","AT","Nil",.T.,.F.},{"DYNAMICBACKCOLOR","C","Nil",.F.,.F.},{"DYNAMICFORECOLOR","C","Nil",.F.,.F.},{"FONTBOLD","L",".F.",.T.,.T.,1},{"FONTCOLOR","AC","Nil",.F.,.T.,1},{"FONTITALIC","L",".F.",.T.,.T.,1},{"FONTNAME","C","Arial",.T.,.T.,1},{"FONTSIZE","N","10",.T.,.T.,1},{"FONTSTRIKEOUT","L",".F.",.T.,.T.,1},{"FONTUNDERLINE","L",".F.",.T.,.T.,1},{"HEADERS","AT",'{"Type","Qty","Last key with this DataType"}',.T.,.F.},{"HEIGHT","N","280",.T.,.T.,1},{"HELPID","N","Nil",.T.,.F.},{"IMAGE","AT","Nil",.T.,.F.},{"INPLACEEDIT","AM","{}",.T.,.F.},{"ITEMCOUNT","N","Nil",.T.,.T.,1},{"ITEMS","AM",'{{"Row1Col1","Row1Col2", "33"}}',.T.,.F.},{"JUSTIFY","AN","{,1,}",.T.,.T.,2},{"MULTISELECT","L",".F.",.T.,.T.,2},{"NOLINES","L",".F.",.T.,.T.,2},{"ONCHANGE","E","Nil",.T.,.F.},{"ONDBLCLICK","E","Nil",.T.,.F.},{"ONGOTFOCUS","E","Nil",.T.,.F.},{"ONHEADCLICK","C","Nil",.T.,.F.},{"ONLOSTFOCUS","E","Nil",.T.,.F.},{"ONQUERYDATA","E","Nil",.T.,.F.},{"ROW","N","110",.T.,.T.,1},{"SHOWHEADERS","L",".T.",.T.,.T.,1},{"TOOLTIP","C","Nil",.T.,.F.},{"VALUE","N","Nil",.T.,.F.},{"VIRTUAL","L",".F.",.T.,.T.,1},{"WIDTH","N","750",.T.,.T.,1},{"WIDTHS","AN","{140,70,500}",.T.,.F.}},{110,10,390,760}}

потом восстанавливаешь как показано ранее

если записать этот текст в ИНИ-файл в одну строку в значение какого либо ключа
то при чтении будет прочитано все от знака "=" до конца строки


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 992
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.09 03:07. Заголовок: Петр пишет: Я укажу..


Петр пишет:

 цитата:
Я укажу вам Истинный путь



Что-то не работает.....
Error BASE/1132 Переполнение массива: Неверное количество аргументов
Called from HB_INIWRITE(0)
Called from SAVETOINI(111)
Called from CREATEMYINIFILE(63)
Called from MAIN(32)

Вываливается на строчке:
IF ! hb_IniWrite( cIniName, hIni, "#Generated file; don't touch", "#End of file")

Боюсь править, т.к. хочется увидеть правильный код МАСТЕРА !




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 775
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.12.09 22:17. Заголовок: Andrey пишет: Error..


Andrey пишет:

 цитата:
Error BASE/1132 Переполнение массива: Неверное количество аргументов
Called from HB_INIWRITE(0)
Called from SAVETOINI(111)
Called from CREATEMYINIFILE(63)
Called from MAIN(32)


Код работает исправно - только что скопи-пастил откомпилировал-запустил - никаких ошибок (Harbour SVN)

Andrey пишет:

 цитата:
Боюсь править, т.к. хочется увидеть правильный код МАСТЕРА !


Не бойтесь А правильный - не правильный : у меня работает.

Теперь относительно Пути Воина и Истинного пути.
MiniGUI использует собственные функции для работы с ini файлами. В основе их лежит использование WinAPI, а не встроенные функции языка для работы с конфигурационными файлами (Это не Путь Воина ).
Смешивать эти два подхода я никому не рекомендую, во избежание ошибок.
Так что выбор "Истинного пути" (если он конечно есть) всегда остается за вами



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 116
Зарегистрирован: 05.06.07
ссылка на сообщение  Отправлено: 10.12.09 04:02. Заголовок: Может я не понял проблемы, но по моему все делается проще


Может я не понял проблемы, но по моему все делается проще
Пример. Мои отступы 1 табуляция = 4 пробела.
----Proba01.prg-----------------------------
#include <minigui.ch> 

Procedure Main
private aFiles:={{ "spiski.xls", .T., "обработан ", 20, NIL },;
{ "centr.xls", .F., "не обработан", 12, NIL }}
private aRest:={}
private cIniFile:=GetExeFileName()
cIniFile:=substr(cIniFile,1,rAt('.',cIniFile))+'ini'

Load Window wForm_1

wForm_1.EditBox_1.Value:=""

wForm_1.Center
wForm_1.Activate

Return
//------------------------------------------
function SaveIni()
local n, i, j, s:='', t
//открыть ИНИ-файл
if 0#_BeginIni( cIniFile ); return Nil; endif
//перегнать массив в текстовые строки и записать
for i:=1 to len(aFiles)
s:='{'
for j:=1 to len(aFiles[ i ])
t:=aFiles[i,j]
if ValType(t)='C'
s:=s+'"'+t+'",'
elseif ValType(t)='L'
s:=s+if(t,'.T.','.F.')+','
elseif ValType(t)='N'
s:=s+alltrim(str(t))+','
elseif ValType(t)='U'
s:=s+'NIL,'
endif
next
if(right(s,1)=','); s:=left(s,len(s)-1); endif
s:=s+'}'
//записать
if !(_SetIni( 'FileList', 'File_'+strzero(i,3,0), s))
MsgExclamation('Ошибка записи в ИНИ-файл'+HB_OsNewLine()+;
'файл:<'+cIniFile+'>'+HB_OsNewLine()+;
s)
endif
next
_EndIni()
msgbox('готово')
return Nil
//------------------------------------------
function RestIni()
local n, i, j, s:='', t
//получить секцию
aR:=_GetSection( 'FileList', cIniFile )
if len(aR)=0; return Nil; endif
//восстановить массив
for i:=1 to len(aR)
t:=aR[i,2]
aAdd(aRest,&(t))
next
//показать
wForm_1.EditBox_1.Value:=''
for i:=1 to len(aRest)
for j:=1 to len(aRest[ i ])
t:='aRest['+str(i,3)+']['+str(j,2)+']='
if ValType(aRest[i,j])='C'
t:=t+aRest[i,j]
elseif ValType(aRest[i,j])='L'
t:=t+if(aRest[i,j],'.T.','.F.')
elseif ValType(aRest[i,j])='N'
t:=t+alltrim(str(aRest[i,j]))
elseif ValType(aRest[i,j])='U'
t:=t+'Nil'
endif
wForm_1.EditBox_1.Value:=wForm_1.EditBox_1.Value+t+HB_OsNewLine()
next
next
msgbox('готово')
return Nil
//===========================================================
-----wForm_1.fmg-------------------------------------------
DEFINE WINDOW TEMPLATE AT 171,371 HEIGHT 415 WIDTH 648 TITLE "Array to Ini test" MAIN FONT "Arial" SIZE 9

DEFINE EDITBOX EDITBOX_1
COL 20
ROW 50
WIDTH 600
HEIGHT 320
VALUE "New EditBox"
READONLY .F.
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
TOOLTIP Nil
BACKCOLOR Nil
FONTCOLOR Nil
MAXLENGTH Nil
ONGOTFOCUS Nil
ONCHANGE Nil
ONLOSTFOCUS Nil
HELPID Nil
VISIBLE .T.
TABSTOP .T.
NOVSCROLLBAR .F.
NOHSCROLLBAR .F.
END EDITBOX

DEFINE BUTTON BUTTON_1
COL 20
ROW 10
WIDTH 130
HEIGHT 30
CAPTION "Сохранить в ИНИ"
PICTURE Nil
ICON Nil
ACTION SaveIni()
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
HELPID Nil
FLAT .F.
TABSTOP .T.
TRANSPARENT .F.
TOOLTIP Nil
VISIBLE .T.
DEFAULT .F.
END BUTTON

DEFINE BUTTON BUTTON_2
COL 190
ROW 10
WIDTH 140
HEIGHT 30
CAPTION "Восстановить из ИНИ"
PICTURE Nil
ICON Nil
ACTION RestIni()
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
HELPID Nil
FLAT .F.
TABSTOP .T.
TRANSPARENT .F.
TOOLTIP Nil
VISIBLE .T.
DEFAULT .F.
END BUTTON

END WINDOW

------------------------------------------------------

замечу
Преобразование массива в текст здесь сделано для частного случая.
У меня есть функция для более общего случая. Т.е.
-массив любой ветвистости
-символьные данные правильно сохраняются с любой комбинацией кавычек внутри

если есть нужда - могу поделиться


Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 117
Зарегистрирован: 05.06.07
ссылка на сообщение  Отправлено: 14.12.09 03:16. Заголовок: Странно - в тексте потерялось "[i]"



вдруг обнаружил что кто-то восстановил табуляции (правда у меня в редакторе 1таб=4пробела)
и что сообщения можно редактировать.

Исправил предыдущее и заменил это.
я правильно сделал?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 60
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 17.12.09 22:49. Заголовок: Моя функция





Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 777
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.12.09 00:18. Заголовок: Мдя ... :sm237: ..


Мдя ...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1021
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.01.10 03:06. Заголовок: Разбирался с хХарбор..


Разбирался с хХарборовскими функциями работы с ИНИ-файлами... Там вроде удобней.
Но так как пишу прогу на МиниГуи, то нужно использовать Гуевые...
Как можно проверить, есть ли такая СЕКЦИЯ и есть ли такая ПЕРЕМЕННАЯ ?
В хэлпе что-то мало всего.... в хХарборе больше....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1023
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.01.10 16:05. Заголовок: Что-то наверно затер..


Что-то наверно затерялась моя просьба....
Как можно проверить на МиниГуи, есть ли такая СЕКЦИЯ и есть ли такая ПЕРЕМЕННАЯ в ИНИ-файле ?
В хелпе вообще ничего толком нет...


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 29
Зарегистрирован: 01.01.10
ссылка на сообщение  Отправлено: 08.01.10 00:15. Заголовок: Может быть вместо IN..


Может быть вместо INI-файла записывать массив в MEMO-поле dbf-файла? В HwGUI есть две функции для этого: ARRAY2STRING и STRING2ARRAY. Библиотека PROCMISC.LIB.


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.01.10 08:49. Заголовок: MEMO-поля не самый н..


MEMO-поля не самый надежный инструмент: периодически бывает сбой ссылок при сжатии таблиц. В своих проектах от MEMO отказались после серии потерь данных. С INI-файлами тоже не все гладко. Периодически они рушатся из-за некорректного завершения программ (для изменения одной строки нужно ведь переписать весь файл). На сегодняшний день считаю лучшим выходом для хранения настроек DBF-файл. Структура примерно такая:
{{'K_PART','N',3,0}, {'K_VAR','N',4,0}, {'NAME','C',15,0}, {'RNAME','C',50,0},{'TYPE','C',1,0},{'LEN_VAR','N',3,0},{'LEN_DEC','N',1,0},;
{'VAR',C,1000},{'K_HELP','N',5,0}}
Поиск переменных с помощью индекса происходит быстро. Одновременное изменение с разных станций разруливается блокировками. Написаны две функции: READ_VAR() n PUT_VAR(), которые приводят переменные к нужному виду перед записью (в строку) и обратно.
Доступ к настройкам выполняется в специальном режиме, чтобы абы кто не испортил. Использую несколько лет, и очень доволен.


Спасибо: 0 
Цитата Ответить
постоянный участник




Пост N: 1027
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.01.10 13:41. Заголовок: sergey5703 пишет: В..


sergey5703 пишет:

 цитата:
В HwGUI есть две функции для этого


wad1 пишет:

 цитата:
С INI-файлами тоже не все гладко



Вы чего ? Совсем запраздновались ....
Я конкретно спрашиваю:
Как можно проверить на МиниГуи, есть ли такая СЕКЦИЯ и есть ли такая ПЕРЕМЕННАЯ в ИНИ-файле ?

А что лучше, и хуже не надо обсуждать... Вот мне не нравиться хранить настройки в DBF-файле. Непрактично ! У меня свои взгляды на это. У меня 600Кб ини-файл занимает и все поля, меню, печать, блоки кода,... все в ини-файле.
А тут я спрашиваю про функции работы с ини-файлами через МиниГуи ! И все, никаких гвоздей !



Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.01.10 14:04. Заголовок: Andrey пишет: Вот м..


Andrey пишет:

 цитата:
Вот мне не нравиться


Мягкий знак тут не нужен. И еще: тут вообще ничего нельзя обсуждать?

Спасибо: 0 
Цитата Ответить
администратор




Пост N: 1341
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.01.10 14:05. Заголовок: wad1 пишет: И еще: ..


wad1 пишет:

 цитата:
И еще: тут вообще ничего нельзя обсуждать?


Можно и нужно !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 242
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.01.10 15:27. Заголовок: Петр пишет: MiniGUI..


Петр пишет:

 цитата:
MiniGUI использует собственные функции для работы с ini файлами. В основе их лежит использование WinAPI, а не встроенные функции языка для работы с конфигурационными файлами


Андрей! Думаю, это означает, что средствами MiniGUI твою задачу (массивы в ini) не решить.
Можно использовать те функции, которые Петр в начале темы привел.
Найди сообщение со словами: "Я укажу вам Истинный путь." :)


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 117
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 08.01.10 17:22. Заголовок: А может просто испол..


А может просто использовать функции перевода массива в строку с разделителями (AtoC)
и потом назад CtoA()


//--------------------------------------------------------------------------//
// creates a list string with or without separators from an array
// It's part of my personal Udf's collection.
// It's not used by Debug.prg but I incude it as a complement of CtoA function

Static Function AtoC( aArr, cType, cSep )

Local nEle := 1, ;
cStr := ''

Default cType := ValType( aArr[ 1 ] ), ;
cSep := "|"

If ValType( cSep ) != "N"

For nEle := 1 To Len( aArr )
cType := ValType(aArr[nEle])
If cType == "D"
cStr += ( DtoC( aArr[ nEle ] ) + cSep )
ElseIf cType == "N"
cStr += ( LTStr( aArr[ nEle ] ) + cSep )
ElseIf cType == "L"
cStr += ( If( aArr[ nEle ], "T", "F" ) + cSep )
ElseIf cType == "A" // "A" means Ascii (not Array)
// cStr += ( Chr( aArr[ nEle ] ) + cSep )
cStr += ( AtoC(aArr[nEle], ,cSep) + cSep )
Else
//fdebug('AtoC','nEle,aArr,Type',{nEle,aArr[ nEle ],cType},7)
cStr += ( iif(aArr[nEle]=NIL,'NIL',aArr[nEle]) + cSep )
EndIf

Next

Else // numeric "cSep" means fixed lenght elements with no separators

For nEle := 1 To Len( aArr )

If cType == "D"
cStr += DtoS( aArr[ nEle ] )
ElseIf cType == "N"
cStr += Str( aArr[ nEle ], cSep )
ElseIf cType == "L"
cStr += If( aArr[ nEle ], "1", "0" )
ElseIf cType == "B" .and. cSep == 2 // "B" means Binary (not Block)
cStr += I2Bin( aArr[ nEle ] )
ElseIf cType == "B" .and. cSep == 4
cStr += L2Bin( aArr[ nEle ] )
ElseIf cType == "B" .and. cSep == 8
cStr += L2Bin( aArr[ nEle ] )
Else
cStr += PadR( aArr[ nEle ], cSep )
EndIf

Next

EndIf

Return cStr

//---------------------------------------------------------------------------
//--------------------------------------------------------------------------//
// creates an array from a string with or without separators
// It's part of my personal Udf's collection.
Static Function CtoA( cString, cType, cSeparator, bBlock )
Local cToken, nEle, lNum, ;
aArr := {}

Default cSeparator := "|", ;
cType := "C"

If ValType( cSeparator ) != "N" .and. cSeparator >= Chr( 32 )

nEle := 1

While ! Empty( cToken := ExtractWord( nEle++, cString, {cSeparator} ))

If cType == "N"
AAdd( aArr, Val( cToken ) )
ElseIf cType == "D"
AAdd( aArr, CtoD( cToken ) )
ElseIf cType == "L"
AAdd( aArr, "T" $ cToken )
ElseIf cType == "B"
AAdd( aArr, EVAL( cToken ) )
Else
AAdd( aArr, cToken )
EndIf

EndDo

Else

nEle := 1
lNum := ValType( cSeparator ) == "N"

While nEle <= Len( cString )

Do Case
Case cType == "N" .and. lNum
AAdd( aArr, Val( SubStr( cString, nEle, cSeparator ) ) )
nEle += cSeparator

Case cType == "N" .and. ! lNum .and. cSeparator == ""
AAdd( aArr, Val( SubStr( cString, nEle++, 1 ) ) )

Case cType == "B" .and. lNum .and. cSeparator == 2 // "B" means Binary (not Block)
AAdd( aArr, Bin2I( SubStr( cString, nEle, cSeparator ) ) )
nEle += cSeparator

Case cType == "B" .and. lNum .and. cSeparator == 4
AAdd( aArr, Bin2L( SubStr( cString, nEle, cSeparator ) ) )
nEle += cSeparator

Case cType == "B" .and. lNum .and. cSeparator == 8
AAdd( aArr, Bin2L( SubStr( cString, nEle, cSeparator ) ) )
nEle += cSeparator

Case cType == "C" .and. lNum
AAdd( aArr, SubStr( cString, nEle, cSeparator ) )
nEle += cSeparator

Case cType == "D" .and. lNum
AAdd( aArr, StoD( SubStr( cString, nEle, 8 ) ) )
nEle += 8

Case cType == "D" .and. ! lNum .and. cSeparator == ""
AAdd( aArr, CtoD( SubStr( cString, nEle, 8 ) ) )
nEle += 8

Case cType == "L"
AAdd( aArr, SubStr( cString, nEle++, 1 ) $ "T1" )

Case cType == "A" // "A" means Ascii (not Array)
AAdd( aArr, Asc( SubStr( cString, nEle++, 1 ) ) )

OtherWise
AAdd( aArr, SubStr( cString, nEle++, 1 ) )

EndCase

EndDo

EndIf

If bBlock != Nil

For nEle := 1 To Len( aArr )
aArr[ nEle ] := Eval( bBlock, aArr[ nEle ] )
Next

EndIf

Return aArr


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1028
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.01.10 20:05. Заголовок: PSP пишет: Думаю, э..


PSP пишет:

 цитата:
Думаю, это означает, что средствами MiniGUI твою задачу (массивы в ini) не решить.



Народ !!! Вы все запраздновались ....
Не нужно мне писать массив, с этим разобрались.

Пишу последний конкретный вопрос:
Как можно проверить на МиниГуи, есть ли такая СЕКЦИЯ и есть ли такая ПЕРЕМЕННАЯ в ИНИ-файле ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 25 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 693
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет