| 
                    Работа с ini файлами
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Четверг, 12.01.2012, 19:17 | Сообщение # 1
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 463
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Здравствуйте. Очень нужен модуль для работы с ini файлами ТОЛЬКО на API. Т.к стандартный модуль IniFiles не устраивает из-за VCL ных функций и своего размера. Он сам-то не маленький плюс еще к себе присоединяет модуль classes, который вообще монстр. Сейчас пытаюсь перепилить некоторые VCL ные функции на апи, но это адово сложно, ибо одна функа приплетает еще кучу, а те еще и еще.... 
                           
                          P.S. Гуглил долго и упорно, но кроме фигни ничего не нашел... ((( 
                          P.S.S. За помощь обделю большими плюсами. 
                           
                          Pascal, C\C++, Assembler, Python
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Пятница, 13.01.2012, 00:21 | Сообщение # 2
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 897
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Не знаю модуля на апи, но можно свой попробовать написать, думаю это не так сложно будет. Какие именно функции нужны? 
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Пятница, 13.01.2012, 14:19 | Сообщение # 3
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 463
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Хотя бы самую необходимую. Функцию для чтение параметра из файла. Т.е указываешь секцию, откуда читать и сам параметр. И получаешь его значение. 
                           
                          P.S. Я никогда не работал со строками на апи. Всегда обходился стандартными функциями, а сейчас это никак нельзя...   
                           
                          Pascal, C\C++, Assembler, Python 
                           
                          
                            Сообщение отредактировал Волк-1024 - Пятница, 13.01.2012, 14:29
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Суббота, 14.01.2012, 12:58 | Сообщение # 4
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 897
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Чтобы просто прочитать есть функция Доступно только для пользователей 
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Суббота, 14.01.2012, 21:32 | Сообщение # 5
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 463
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Спасибо. Но я не понял, что пихать в первый параметр. (Другие знаю). 
                           
                          Гугл это обьясняет как: "ApplicationName: Имя заголовка пpикладной задачи в FileName." Что это? 
                           
                          ---------------------------------------------- 
                           
                          Понял что это. Но теперь всё время вышибает AccsesViolation... 
                           
                          
                            
                            
                              Code
                             
                            
                              GetPrivateProfileString('GENERAL', 'TEST', nil, buff, 255, '1.txt');
                             
                            
                           
                          Есть варианты, что делаю не так? 
                           
                          Pascal, C\C++, Assembler, Python 
                           
                          
                            Сообщение отредактировал Волк-1024 - Суббота, 14.01.2012, 22:40
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Суббота, 14.01.2012, 23:01 | Сообщение # 6
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 897
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Тут в типе данных дело, не знаю точно в каком 
                           
                          
                            
                            
                              Code
                             
                            
                              GetPrivateProfileString(PChar('SectionName'),PChar('param'),nil,buf,255,PChar('1.txt'));
                             
                            
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Суббота, 14.01.2012, 23:19 | Сообщение # 7
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 463
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Та же вата. Я разные перепробовал. Только изменился адрес в ошибке. Я по гуглил и не нашел ни одного рабочего варианта этой функции... 
                          А вот, например, с записью всё в порядке.
                          
                            
                            
                              Code
                             
                            
                              WritePrivateProfileString(PChar('General'), PChar('test'), PChar('OK'), PChar('C:\2.txt'));
                             
                            
                          Что за фигня?! 
                           
                          Pascal, C\C++, Assembler, Python 
                           
                          
                            Сообщение отредактировал Волк-1024 - Суббота, 14.01.2012, 23:20
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Воскресенье, 15.01.2012, 00:00 | Сообщение # 8
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 463
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Да. Скорее всего, дело типе данных. Т.к после того как я экспериментировал получилось это: 
                          
                            
                            
                              Code
                             
                            
                               
                              var 
                                          buff: PChar; 
                              begin 
                                           buff:=PAnsiChar(''); 
                                           GetPrivateProfileString(PansiChar('General'),PansiChar('Param'),nil, PansiChar(buff),255, PansiChar('C:\1.txt')); 
                             
                            
                          И ошибка стала ссылаться на доступный для отладки адрес. До этого вообще то на 00000000 ссылалась, то еще куда-то. 
                          Так вот. При трассировке функции крашится за несколько инструкций до точки возврата. В регистр ESI записывается искаженное "правильное" значение. Т.е оно его считывает и плюс к нему дописываются в конец кракозябры всякие. И всё это дело дохнет здесь: в модуле ntdll.dll (хз почему там) на инструкции
                          
                            
                            
                              Code
                             
                            
                              MOV BYTE PTR DS:[EDI],AL
                             
                           по адресу 77224DF2. Но если убрать
                          
                            
                            
                              Code
                             
                            
                              buff:=PansiChar('');
                             
                           то ошибка опять будет ссылаться на не доступный адрес. 
                           
                          И что теперь делать? Из-за этой ерунды моя прога стоит на месте... 
                           
                          Pascal, C\C++, Assembler, Python 
                           
                          
                            Сообщение отредактировал Волк-1024 - Воскресенье, 15.01.2012, 00:11
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Воскресенье, 15.01.2012, 12:43 | Сообщение # 9
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 897
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Я добавил полный путь к файлу и у меня всё заработало 
                           
                          Доступно только для пользователей
                           
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик 
                           
                          
                            Сообщение отредактировал dolphin - Воскресенье, 15.01.2012, 12:44
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Воскресенье, 15.01.2012, 13:47 | Сообщение # 10
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 463
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          ЁКЛМН! Реально заработала! Спасибо! 
                           
                          ----------------------------------- 
                          (Почему-то не могу поднять репу. Пишет, что могу только через 6 дней). 
                           
                          Pascal, C\C++, Assembler, Python 
                           
                          
                            Сообщение отредактировал Волк-1024 - Воскресенье, 15.01.2012, 13:48
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Вторник, 31.01.2012, 11:47 | Сообщение # 11
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 897
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Функции для записи и чтения параметров на api 
                           
                          Доступно только для пользователей 
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          vvova15
                         | 
                        
                          Дата: Вторник, 31.01.2012, 13:10 | Сообщение # 12
                         | 
                       
                      
                        
                           
                          
                            Участник
                           
                          
                          Зарегистрирован: 24.04.2010
                          
                            Группа: Пользователи
                           
                          
                            Сообщений: 83
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Доступно только для пользователей 
                          чотко. в стиле microsoft   
                           
                           
                          ICQ 185-398 
                           
                          
                            Сообщение отредактировал dolphin - Вторник, 31.01.2012, 13:24
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
               
             
           
          
          
          
          
          
          
       |