Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

Поиск символа в строке.   Найти похожие ветки 

 
WestBronx   (2006-01-27 13:53) [0]

Привет, пытаюсь написать конфиг для программы, проблемма в следующем.
Скажем есть переменная n, типа string, со значением "time=55".
Подскажите, как обрезать все символы до "=" (т.е. time), занести их во временную переменную q, далее, обрезать значение после знака "=" (т.е. 55), занести в переменную w.


 
Бася   (2006-01-27 13:55) [1]

Нужно применять функцию Pos, insert....


 
Johnmen ©   (2006-01-27 14:01) [2]

Какие операции со строковыми переменными ты уже знаешь?


 
WestBronx   (2006-01-27 14:07) [3]

Непонимаю, как этим воспользоваться, insert если не изменяет память вставляет строку в строку.

Может поможете кодом?


 
Johnmen ©   (2006-01-27 14:08) [4]

Помоги себе сам, спроси у F1.


 
WestBronx   (2006-01-27 14:09) [5]

Johnmen ©   (27.01.06 14:01) [2]
Многие, но не те которые мне нужны в данном случаи =/
Можно по идеи разбить string на чар, и по байтно считать символы, как только попадаеться "=", обрезать. Но это слишком геморойно писать.
Может подскажите чего?


 
WestBronx   (2006-01-27 14:12) [6]

Johnmen ©   (27.01.06 14:08) [4]
F1, помогает только тогда, когда знаешь чего тебе конкретно нужно. В моём случаи он бесполезен.
"Помоги себе сам", что вы делаете с таким вероисповеданием на форуме для новичков? %) Да и вообще на форуме?


 
umbra ©   (2006-01-27 14:14) [7]

В делфи специально для этого есть компонент TIniFile.


 
dabreezy   (2006-01-27 14:15) [8]

Злые вы все :) Вот код:

procedure TForm1.Button1Click(Sender: TObject);
var
 s: string;
 q,w: string;
 i,flag: byte;
begin
 s:="time=55";
 q:="";w:="";
 flag:=0;
 for i:=1 to length(s) do
   begin
     if (s[i]<>"=") and (flag=0) then q:=q+s[i];
     if (s[i]<>"=") and (flag=1) then w:=w+s[i];
     if (s[i]="=") then      flag:=1;
   end;
 //q=time   w=55

end;


 
WestBronx   (2006-01-27 14:17) [9]

umbra ©   (27.01.06 14:14) [7]
Свой написанный - ближе к сердцу %)
И разбираться далее легче.
Там по идеи пустяк написать.


 
Johnmen ©   (2006-01-27 14:17) [10]

>dabreezy   (27.01.06 14:15) [8]

Что полезного можно вынести из этого "кода"?


 
Бася   (2006-01-27 14:19) [11]

Не падай духом! Я сам новичок в программировании. Нигде не учился - все  сам!

Если не понимаешь, то это плохо...
Открой любую книгу по Паскаль, открой первые страницы и читай раз 20!
Даю слово, запомнишь!

Ну раз разговор пошёл....
Смотри...

Бросай на форму два компонента label, один компонент Edit1 и кнопку button1.

В обработчике для кнопки (клацни два раза на ней) пиши так:
procedure TForm1.Button1Click(Sender: TObject);
var
 i,d: integer;
 st: string;
begin
 st:= Edit1.Text; //в переменную st загоняем слово в Edit1.
 for i:=0 to length(st)do //от начала до конца строки...
 label1.Caption:=st; //в label1 перегоним переменную st...
 d:=Pos("test",st); //найдём в строке stб подстроку "test"
 label2.Caption:=IntToStr(d); //покажем номер позиции искомого фрагмента
end;

По такому принципу и шагай и всё у тебя получится! Главное - читай внимательно и пытайся. Научиться можно только программируя самос тоятельно!
Удачи!!! :))))))))


 
dabreezy   (2006-01-27 14:19) [12]

То что написал я его быстрее чем открыл бы справку :)
Тем более он работает


 
WestBronx   (2006-01-27 14:23) [13]

dabreezy   (27.01.06 14:19) [12]
Спасиб ;)


 
Johnmen ©   (2006-01-27 14:25) [14]

>Бася   (27.01.06 14:19) [11]
>Открой любую книгу по Паскаль, открой первые страницы и читай раз 20!
>Даю слово, запомнишь!

Золотые слова!


 
umbra ©   (2006-01-27 14:26) [15]

2 WestBronx   (27.01.06 14:17) [9]

так ведь можно изучть код имеющегося класса, почитать документацию. А если что-то не нравится - создать потомка, в котором добавить недостающие возможности или изменить существующие. Легче переделать имеющийся правильный код, чем писать новый с нуля.


 
Бася   (2006-01-27 14:34) [16]

Господа мы уходим от темы. Человек который только познаёт азы Дельфей, хочет понять но не может! Ему рациональней было бы изучить, чем копировать чужое, не понимая его сущность.

А на счет золотоых слов, то это истинная правда!
А хотя, эт Ваше право голоса, я всего лишь хотел помочь, и вселить в новичка силы!

До встречи!


 
umbra ©   (2006-01-27 15:06) [17]

собственно по теме:


function ExtractValue(s, delimiter: string): string;
var
 DelimPos, ValueLen: integer;

begin
 DelimPos := LastDelimiter(delimiter, s);
 ValueLen := Length(s) - DelimPos;
 Result := RightStr(s, ValueLen);
end;
{....................................................}
val := ExtractValue(s, "=");
{....................................................}



 
Бася   (2006-01-27 20:17) [18]

Как оказалось, действительно по теме. Если кого обидел - лично приношу извинения.


 
Glex ©   (2006-01-27 20:28) [19]

TIniFiles example:


uses IniFiles;
....
procedure TForm1.FormCreate(Sender: TObject);
var Ini: TIniFile;
begin
 ProgName:= Application.Title;
 Ini := TIniFile.Create("bkrnd.ini");
 try
 Settings.FormLeft:= Ini.ReadInteger("Interface","Form1.Left", 800);
 Settings.FormTop:= Ini.ReadInteger("Interface", "Form1.Top", 100);
 if Settings.FormLeft>Screen.WorkAreaWidth-Form1.ClientWidth then Settings.FormLeft:=Screen.WorkAreaWidth-Form1.ClientWidth;
 if Settings.FormTop>Screen.WorkAreaHeight-Form1.ClientHeight then Settings.FormTop:=Screen.WorkAreaHeight-Form1.ClientHeight;
 Settings.Skin:= Ini.ReadInteger("Interface", "Skin", 0);
 Settings.Lang:= Ini.ReadInteger("Interface", "Lang", 0);
 Settings.AlphaBlendValue:= Ini.ReadInteger("Interface", "AlphaBlendValue", 220);
 Settings.AlphaBlend:= Ini.ReadBool("Interface", "AlphaBlend", false);
 Settings.StayOnTop:= Ini.ReadBool("Interface", "StayOnTop", true);
 Settings.RandomizerSettings.TwoA:= Ini.ReadBool("Randomizer Settings", "TwoA", false);
 Settings.RandomizerSettings.AI:= Ini.ReadBool("Randomizer Settings", "AI", true);
 Settings.RandomizerSettings.ThreeD:= Ini.ReadBool("Randomizer Settings", "ThreeD", false);
 Settings.MiniMode:= Ini.ReadBool("Interface", "MiniMode", false);
 Settings.RandomizerSettings.AutoGen:= Ini.ReadBool("Randomizer Settings", "AutoGen", false);
 Settings.RandomizerSettings.AutoGenTime:= Ini.ReadInteger("Randomizer Settings", "AutoGenTime", 750)
 finally
   Ini.Free;
 end;
 Form1.DoubleBuffered:= true;
end;
....
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var Ini: TIniFile;
begin
RefreshSettings;
Ini := TIniFile.Create("bkrnd.ini");
try
 Ini.WriteInteger("Interface", "Form1.Top", Top);
 Ini.WriteInteger("Interface", "Form1.Left", Left);
 Ini.WriteInteger("Interface", "Skin", Settings.Skin);
 Ini.WriteInteger("Interface", "Lang", Settings.Lang);
 Ini.WriteInteger("Interface", "AlphaBlendValue", Settings.AlphaBlendValue);
 Ini.WriteBool("Interface", "MiniMode", Settings.MiniMode);
 Ini.WriteBool("Interface", "AlphaBlend", Settings.AlphaBlend);
 Ini.WriteBool("Interface", "StayOnTop", Settings.StayOnTop);
 Ini.WriteBool("Randomizer Settings", "TwoA", Settings.RandomizerSettings.TwoA);
 Ini.WriteBool("Randomizer Settings", "AI", Settings.RandomizerSettings.TwoA);
 Ini.WriteBool("Randomizer Settings", "ThreeD", Settings.RandomizerSettings.TwoA);
 Ini.WriteBool("Randomizer Settings", "AutoGen", Settings.RandomizerSettings.AutoGen);
 Ini.WriteInteger("Randomizer Settings", "AutoGenTime", Settings.RandomizerSettings.AutoGenTime);
finally
 Ini.Free;
 end;
end;


Собственно, Ini-Файл:
[Interface]
Form1.Top=246
Form1.Left=373
Skin=0
Lang=0
AlphaBlendValue=245
MiniMode=0
AlphaBlend=1
StayOnTop=1
[Randomizer Settings]
TwoA=1
AI=1
ThreeD=1
AutoGen=1
AutoGenTime=5000


В коде немного нужного только моей проге, но, думаю, разберёшься ))


 
WestBronx   (2006-01-27 21:29) [20]

Спасибо всем за ответы, но dabreezy мне уже помог ;)
Всё равно спасибо за проявленный интерес ;)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.038 c
2-1138192080
medvedenator
2006-01-25 15:28
2006.02.12
Инсталлятор


6-1130928726
BStorm
2005-11-02 13:52
2006.02.12
Как получить список СЕТЕАКТИВНЫХ процессов в WIN98


15-1137871164
parovoZZ
2006-01-21 22:19
2006.02.12
IntraWeb


2-1138253763
Radix
2006-01-26 08:36
2006.02.12
Сделать выборку пропущенных номеров из БД на SQL


1-1137225938
NotBeginer
2006-01-14 11:05
2006.02.12
Не могу понять причину





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский