| 
| 
 | Вопрос # 2 637/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Возможно ли сортировать сектора в ini файле ?
 
 Вот так вышлядит мой файл:
 [1]
 asd=asd
 [2]
 asd=asd
 [3]
 asd=asd
 [4]
 asd=asd
 [5]
 asd=asd
 [6]
 asd=asd
 [7]
 asd=asd
 [8]
 asd=asd
 
 затем мне нужно удалить пару секторов(к примеру)
 
 [1]
 asd=asd
 [2]
 asd=asd
 [3]
 asd=asd
 [6]
 asd=asd
 [7]
 asd=asd
 [8]
 asd=asd
 
 4 и 5 сектора нет, и получился разнобой, вот мне и нужно отсортировать сектора чтобы они выглядели:
 
 [1]
 asd=asd
 [2]
 asd=asd
 [3]
 asd=asd
 [4]
 asd=asd
 [5]
 asd=asd
 [6]
 asd=asd
 
 
 Помогите пожалуйста!
 
|  |   Вопрос задал: unl0K (статус: Посетитель)Вопрос отправлен: 14 апреля 2009, 20:20
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 20; последнее сообщение — 15 апреля 2009, 20:35; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 14 апреля 2009, 20:36 [#1]:Йо, мать моя женьщина? Ну нафига такоей изврат нуж0н-то? Ну загрузи ты все данные в память, а потом в цикле да по секциям
 
 фор Ы:= 0 ту СкокаНадо - 1 ду
 бегин
 ИниФайл.РайтСтринг(ИнтТуСтр(Ы + 1), 'asd', 'asd');
 енд;
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | unl0K (статус: Посетитель), 14 апреля 2009, 20:42 [#2]:Мне обязятельна нужно сортировка! Как считывать и записывать данные в ини файл я прикрасно знаю!
 В вашем коде решения я не увидел!
 
 Покажите на примере, что вы имели введу с пямятью!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | min@y™ (статус: Доктор наук), 14 апреля 2009, 21:01 [#3]:Берём данные из файла, записываем в массив, сортируем его, пишем обратно в файл. Чо тут непонятного? В качестве массива можно юзать TStringList. 
 Но, если кол-во секций и имя-значение единственного параметра в каждой секции известны, тогда зачем городить ini-файл вообще?
 
 
 var
  F: TextFile;
  Index: Integer;
begin
  AssignFile(F, 'C:\pagefile.sys');
  Rewrite(F);
 
  {$i-}
  for Index:= 1 to 6 do
    begin
      WriteLn(F, '[', Index,  ']');
      WriteLn(F, 'asd=asd');
    end;
  CloseFile(F);
 
  {$i+}
  if IOResult <> 0
    then raise E: Exception.Create('Аццкое АШЫПКО!!!');
end;Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | unl0K (статус: Посетитель), 14 апреля 2009, 21:19 [#4]:Извените, но это совсем не то! Просто очень долго объяснять все, и скажу, что другово решения в моем случае нет - только ini и значения asd=asd это лишь пример!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | min@y™ (статус: Доктор наук), 14 апреля 2009, 21:41 [#5]:Каков вопрос, таков и ответ. Конкретизируй, иначе не понятно, чего ж тебе надо.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | unl0K (статус: Посетитель), 14 апреля 2009, 21:50 [#6]:я же сказал нужно сортировать ini файл, причем какие и сколько значаний будет секторов неизвестно нужно как-то отсортировать название секторов(они всегда будут цифры)! Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | Вадим К (статус: Академик), 15 апреля 2009, 00:18 [#7]:А в чем проблема отсортировать? или просто хочется что бы в ини файле были отсортированы? а зачем от этого TIniFIle ни жарко ни холодно. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 01:22 [#8]:Конечно все это - не просто! Мне просто в дальнейшей работе нужно - что бы все названия секторов шли по порядку (1 2 3 4 5 6 но не 1 2 4 5 6), это в дальнейшем вызывает много проблем(все расказать не могу, очень долго,работа с деревом, только не нужно предлогать свои варианты работы с данными , меня интересует именно этот вопрос)!
 Мне просто нужно узнать возможно ли это?
 Если нет, то так и скажите!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | Мережников Андрей (статус: Абитуриент), 15 апреля 2009, 05:47 [#9]:отчего же нельзя? Можно сделать примерно так: var tt:TStringList;
 i1,i2:integer;
 ...
 tt:=TStringList.create;
 try
 tt.loadfromfile('');
 i1:=1;
 for i2:=0 to tt.count-1
 if <это номер сектора>
 then begin
 <формируем новый номер сектора из i1>
 <помещаем новый номер сектора в строку>
 i1:=inc(i1);
 end;
 tt.SaveToFile('');
 finally
 tt.free;
 end;
 end;
 |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 11:27 [#10]:Мережников Андрей, да НО! При формировании нового сектора все данные в секторе удаляются!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | Вадим К (статус: Академик), 15 апреля 2009, 12:38 [#11]:to AHJIoKeR Загружаем в память в массив массивов (это ведь не прямоугольный двухмерный массив), или ещё лучше на базе TList+TStringList делаем класс. В памяти сортируем как хотим. А потом сохраняем на диск. и при сохранении не используем TIniFile.
 
 Сложно найти черную кошку в темной комнате, особенно, если её там никогда не было. Вот так и Вы предлагаете решать задачу...
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 17:09 [#12]:Загружаем в память в массив массивов - круто сказанно! Я так понимаю речь идет о динамической памяти, если да - то я с ней работать не умею, если покажите буду рад!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | Вадим К (статус: Академик), 15 апреля 2009, 17:27 [#13]:А что такого в динамической памяти? кстати, динамическая память это совсем не то, о чем Вы говорите. И в данном случае Вам это принципиально никак не влияет. а вот динамический массив - это да, такое есть.
 обявляем так
 a:array of string;//размер не указываем.
 выставим какой то размер
 SetLength(a, 10);
 По ходу работы, массив можно уменьшать/увеличивать
 надо помнить, что индексация начинается с нуля и до (размер минус 1).
 В конце работы с массивом желательно попросить делфи освободить его
 a := nil;
 узнать текущий размер можно функцией length.
 Хватит?
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 18:36 [#14]:Вадим К, хватит)) Проблема начала решатся, но появились новые)
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | min@y™ (статус: Доктор наук), 15 апреля 2009, 18:52 [#15]:Похоже, ты хочечь приспособить под свою задачу то, что для этого не предназначено. 
 
 Цитата: все расказать не могу, очень долго,работа с деревом, только не нужно предлогать свои варианты работы с данными , меня интересует именно этот вопрос 
 И всё же, мой тебе совет: выкинь INI и возьмись за XML. Имхо, это то, что тебе нужно.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 19:58 [#16]:min@y™  ты  прав 100% !!! Но сколько я инфы не искал, то находил только огромные листинги, и разобратся в этом мне не удалось!
 
 Если бы ты объяснил как считать и как записать в XML был бы благодарен!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | min@y™ (статус: Доктор наук), 15 апреля 2009, 20:09 [#17]:Мне не нравится стандартный TXMLDocument. Я юзаю TECXMLParser. Скачай себе, там есть примеры. Когда врубишься, всё будет очень легко. У меня теперь во всех прогах настройки и небольшие древовидные структуры данных хранятся только в XML. Могу ещё помочь модулем со вспомогательными функциями к этому парсеру. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 20:20 [#18]:min@y™, спасибо! ща будем качать! и модуль не мешало бы кинуть)
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  
|   | min@y™ (статус: Доктор наук), 15 апреля 2009, 20:29 [#19]: Цитата: и модуль не мешало бы кинуть)  
 Куда кидать?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | unl0K (статус: Посетитель), 15 апреля 2009, 20:35 [#20]:можно на мыло AHJIoKeR@mail.ru 
 Думаю тебе будет интересно http://forum.sources.ru/index.php?showtopic=81572
 лидер - TjanXMLParser2, но как с ним рабоать,даже примера нет!
 Относись к людям так, как хотел бы, чтобы они к тебе относились! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |