Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

точка в делфи [D7, XP]


inkvizitor ©   (2006-12-25 09:07:00) 

подскажите как в делфи точку заменять на запятую:
есть *.txt(в мемо) файл в нем числа вещественные.
пытался делать по этому коду, но че то неработает?

var s:string;
    i,j:integer;
for i:=0 to Memo1.Lines.Count-1 do {цикл по всему мемо}
begin
s:=Memo1.Lines.Strings[i-1]; {присваиваем S строку}
for j:=1 to length(s) do    {открываем цикл по строке}
if (s[j]='.') then s[j]:=',';   {замена точки на запятую}
end;


inkvizitor   (2006-12-25 14:43:00) [1]


> Ega23 ©   (25.12.06 09:29) [2]


> ЮЮ ©   (25.12.06 10:23) [12]

спасибо помогло.с наступаюшим всех!


Anatoly Podgoretsky   (2006-12-25 12:26:00) [2]

> inkvizitor  (25.12.2006 11:46:15)  [15]

У чисел нет ни точки, ни запятой.
Это строки


inkvizitor   (2006-12-25 12:15:00) [3]


> Издеваешься? Целый вечер ему вдалбливают, что сабжевый код
> меняет знаки во временной переменной и нигде изменения не
> сохраняет, а он упёрся как баран.

ну опять?
и как быть тогда?подскажи?pls.


ЮЮ   (2006-12-25 11:57:00) [4]


> код если не трудно взгляни
> > inkvizitor ©   (25.12.06 09:07)  


Издеваешься? Целый вечер ему вдалбливают, что сабжевый код меняет знаки во временной переменной и нигде изменения не сохраняет, а он упёрся как баран.


inkvizitor   (2006-12-25 11:46:00) [5]


> код свой показывать надо, а не с форума :) А в Memo1 числа
> есть?

код если не трудно взгляни
> inkvizitor ©   (25.12.06 09:07)  

и
> inkvizitor ©   (25.12.06 09:31) [3]

это и есть моя "красота"
там пытался чето сделать но не то.
числа типа 123,456
               ***,*** строит график на chart-е
а числа типа 123.456
                  ***.*** уже не строит .
хочется что бы программе было по барабану что за знаки(./,) - сама правильно различала и считывала


ЮЮ   (2006-12-25 11:26:00) [6]


> на графике одни нули и ничего;-(?


код свой показывать надо, а не с форума :) А в Memo1 числа есть?


inkvizitor   (2006-12-25 11:13:00) [7]


> for i:=0 to Memo1.Lines.Count-1 do
> begin
>  s:=Memo1.Lines.Strings[i-1];
>  for j:=1 to length(s) do
>  if (s[j]='.') then  s[j]:=',';
>  x[i]:=strtofloat(s);
> end;
> Memo1.Text := StringReplace(Memo1.Text, ',', '.',[rfReplaceall]);


на графике одни нули и ничего;-(?


ЮЮ   (2006-12-25 10:23:00) [8]

ну зачем так обижать?
мне надо
1)загрузить в мемо *.txt файл (вещественые числа)
2)преобразовать в массив
3)построить график этого массива.


почему же словесный алгоритм не можешт сопоставить с кодом?
Зачем тебе два цикла подряд?

for i:=0 to Memo1.Lines.Count-1 do
begin
 s:=Memo1.Lines.Strings[i-1];
 for j:=1 to length(s) do
 if (s[j]='.') then  s[j]:=',';
 x[i]:=strtofloat( s);
end;


Memo1.Text := StringReplace(Memo1.Text, ',', '.',[rfReplaceall]);
Ты запятую меняешь на точку. А хотел наоборот :)


inkvizitor   (2006-12-25 10:17:00) [9]


var
 i,j:integer;
 s:string;
begin
Setlength(x,Memo1.Lines.Count);
Memo1.Text := StringReplace(Memo1.Text, ',', '.',[rfReplaceall]);

for i:=0 to Memo1.Lines.Count-1 do
x[i]:=strtofloat(Memo1.Lines[i]);

Chart1.Series[0].Clear;
for i:=0 to Memo1.Lines.Count-1 do begin
Chart1.SeriesList[0].Add(x[i],' ',clblack);
Chart1.BottomAxis.LabelsAngle:=45;
end;

выбивает.sos :-(


novill   (2006-12-25 10:07:00) [10]

> [9] Ega23 ©   (25.12.06 10:04)

я-то ку, но это не было явно сказано.


Ega23   (2006-12-25 10:04:00) [11]


> А почему никто не предложит немного варварский метод:


Потому, что может быть и запятая и точка. Ку?


novill   (2006-12-25 10:03:00) [12]

> [0] inkvizitor ©   (25.12.06 09:07)


А почему никто не предложит немного варварский метод:
если в файле разделителями запятые, то DecimalSeparator:=',' если в файле точки, то DecimalSeparator:='.' ?


Ega23   (2006-12-25 09:54:00) [13]


> Memo1.Text := StringReplace(Memo1.Text, ',', '.', [rfReplaceall ]);


inkvizitor   (2006-12-25 09:49:00) [14]


> обратись к автору "красоты", коль в 3х строках кода разобраться
> не можешь

ну зачем так обижать?
мне надо
1)загрузить в мемо *.txt файл (вещественые числа)
2)преобразовать в массив
3)построить график этого массива.
у меня строит график только целых чисел и с запятой,а с точкой не строит.


ЮЮ   (2006-12-25 09:38:00) [15]

обратись к автору "красоты", коль в 3х строках кода разобраться не можешь


inkvizitor   (2006-12-25 09:36:00) [16]


> Memo1.Text := StringReplace(Memo1.Text, ',', '.', rfReplaceall);


выдает: incompatible types:'TrepaleFlags' and 'Enumeration'?
если не трудно см.
> inkvizitor ©   (25.12.06 09:31) [3]
.


inkvizitor   (2006-12-25 09:31:00) [17]


> Обратно в Memo1 не положил:
>  Memo1.Lines[j] := s;

а куда это ставить, в эту "красоту"?

procedure TForm1.Button3Click(Sender: TObject);
var
 i,j:integer;
 s:string;
begin
Setlength(x,Memo1.Lines.Count);
for i:=0 to Memo1.Lines.Count-1 do
begin
s:=Memo1.Lines.Strings[i-1];
for j:=1 to length(s) do
if (s[j]='.') then  s[j]:=',';
end;
for i:=0 to Memo1.Lines.Count-1 do
x[i]:=strtofloat(Memo1.Lines[i]);
Chart1.Series[0].Clear;
for i:=0 to Memo1.Lines.Count-1 do begin
Chart1.SeriesList[0].Add(x[i],' ',clblack); end;
end;


Ega23   (2006-12-25 09:29:00) [18]

Memo1.Text := StringReplace(Memo1.Text, ',', '.', rfReplaceall);


ЮЮ   (2006-12-25 09:17:00) [19]


> но че то неработает?


Обратно в Memo1 не положил:
 Memo1.Lines[j] := s;


Наверх

Титульная страница Поиск, карта сайта Написать письмо