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

Вниз

Массив из Мемо   Найти похожие ветки 

 
inkvizitor ©   (2006-11-10 11:10) [0]

Пожалуйста помогите !
1) Как из Мемо(в нем уже есть числа в один столбец) сделать массив чисел путем процедуры БаттонКлик(результат должнен выводится тоже в мемо, но на др. форме).Через IntToStr() чёто не получается или я что-то не так делал;
2) Можно ли через компоненту OpenDialog загрузить данные в F1Book(не знаю точных свойств F1Book).
3) как компоненту Chart "заставить" выводить график используя данный Мемо(см. выше)???
Заранее благодарен.


 
Dmitrij_K   (2006-11-10 11:13) [1]

1.

> я что-то не так делал

ага
2. ЧЗ
3. ЧЗ


 
novill ©   (2006-11-10 11:13) [2]

ЖЖОШ! )))

Кетмар, ты хорошо писал про биореактор, у меня ссылки не сохранилось :)


 
novill ©   (2006-11-10 11:14) [3]

> IntToStr() чёто не получается или я что-то не так делал;


У тебя последний шанс! Показывай как делал!


 
Percent   (2006-11-10 11:14) [4]

путем процедуры БаттонКлик

А КиДаун не подходит? А то я для КиДауна знаю, а для БаттонКлика - нет... :(

сделать массив чисел ... результат должнен выводится тоже в мемо

Что-то мне подсказывает, братуха, что мемо не умеет работать с массивами чисел.

чёто не получается или я что-то не так делал;

Ты точно что-то не так делал. Что именно - знаешь только ты. Ибо этого "что-то не так" в виде кода ты не привел.

Можно ли через компоненту OpenDialog загрузить данные в F1Book

Нет.

как компоненту Chart "заставить" выводить график используя данный Мемо

Пинками.

То есть, давай учиться терминологии и пониманию того, что делать и как делать. Согласен?


 
ASoft   (2006-11-10 11:17) [5]

Через IntToStr() чёто не получается или я что-то не так делал
что-то не так делал

> не знаю точных свойств F1Book

я тоже

> как компоненту Chart "заставить" выводить график используя
> данный Мемо

думаю, без необходимой специальной литературы сложно...
> Заранее благодарен.

не за что..


 
Dmitrij_K   (2006-11-10 11:19) [6]

http://antigreen.org/bioreactor/


 
Percent   (2006-11-10 11:24) [7]

1) Как из Мемо(в нем уже есть числа в один столбец) сделать массив чисел путем процедуры БаттонКлик(результат должнен выводится тоже в мемо, но на др. форме).Через IntToStr() чёто не получается или я что-то не так делал;

Значит так. Читая твое "высказывание", я так понимаю, что через IntToStr сделать что-то у тебя не получилось, поэтому ты решил воспользоваться процедурой БаттонКлик. Тебе не кажется, что твоя формулировка как-то не совсем правильная?

Давай с самого начала.
1. У тебя есть мемо, в котором внесены построчно какие-то числа (ты не указал, какие - целые или дробные, но, исходя из попытки использовать IntToStr(), они у тебя - целые).
2. Тебе надо создать (целочисленный) массив с количеством элементов, равным количеству строк в мемо.
3. Потом тебе надо пройти в цикле по строками твоего мемо, и попробовать перевести строчное представление числа из мемо в целое число в массив. Если не удастся - то: а) сообщить пользователю и остановиться; или б) сообщить пользователю и продолжить.
4. Проверить, сколько элементов массива заполнены, и если надо, откорректировать размер массива.

Это что касается первой части твоего задания.
Давай, начинай творить.


 
novill ©   (2006-11-10 11:28) [8]

> [7] Percent   (10.11.06 11:24)

Ты пишешь так, как будто предполагаешь, что автор знает, как делать динамические массивы. :)


 
Percent   (2006-11-10 11:34) [9]

Ты пишешь так, как будто предполагаешь, что автор знает, как делать динамические массивы

Ну, по крайней мере, он узнает новый термин. И, возможно, почитает справку.

P.S. Хотя, у меня возникает подозрение, что автор тут больше не появится.


 
Ketmar ©   (2006-11-10 11:35) [10]

>[9] Percent 10-Nov-2006, 11:34
>P.S. Хотя, у меня возникает подозрение, что автор тут
>больше не появится.
будем надеяться.


 
Percent   (2006-11-10 11:37) [11]

будем надеяться.

Ну и нафига я это все писал? :-)))


 
novill ©   (2006-11-10 11:40) [12]


> Ну и нафига я это все писал?

Ты нес разумное доброе вечное! )))


 
Ketmar ©   (2006-11-10 11:44) [13]

>[11] Percent 10-Nov-2006, 11:37
>Ну и нафига я это все писал? :-)))
из любви к искусству. %-)


 
Percent   (2006-11-10 11:50) [14]

В последнее время такое ощущение возникает, что кто-то преднамеренно создает ветки с тупыми вопросами. Слишком уж много "мертвых" веток, где автор только лишь задает вопрос и "забывает" о ветке. К чему бы это? Месть кого-нибудь "обиженного"? Студенты на лабораторной, успевающие лишь задать вопрос, но теряющие интерес сразу же после звонка? "Потребители", задавшие вопрос, увидевшие/не увидевшие ответ и ушедшие без обратной связи? Или у меня паранойя?


 
ASoft   (2006-11-10 11:52) [15]


> Percent   (10.11.06 11:50) [14]

хочешь поговорить об этом?


 
KilkennyCat ©   (2006-11-10 11:54) [16]

> [4] Percent   (10.11.06 11:14)
> Что-то мне подсказывает, братуха, что мемо не умеет работать
> с массивами чисел.


Вай нот? Оно (мемо) может нести очень даже много информации о массиве. Например, его ширина и высота может указывать на размерность аж двумерного массива. Затем, мемо может отображать элементы массива, опять же используя номер строки и позицию символа - соответственно масииву. И в конце концов, мемо само может быть элементом массива.


 
novill ©   (2006-11-10 11:58) [17]

> [14] Percent   (10.11.06 11:50)

Таких веток действительно всё больше, но без айпишников не разобраться :) И диагноз не поставить :)


 
Percent   (2006-11-10 12:01) [18]

хочешь поговорить об этом?

Ты можешь сказать что-то определенное? Так излагай.


 
ASoft   (2006-11-10 12:06) [19]


> Ты можешь сказать что-то определенное? Так излагай.

да, не здесь...


 
Ketmar ©   (2006-11-10 12:08) [20]

всё-таки есть подозрение на осеннее обострение у студиозусов.


 
Dmitrij_K   (2006-11-10 12:10) [21]


> всё-таки есть подозрение на осеннее обострение у студиозусов.

Ага.
> Завтра сдавать, а я ничего не успел сделать. :(
> поможите люди добрые.


 
Percent   (2006-11-10 12:17) [22]

да, не здесь...

Да ты не стесняйся, тут все свои...


 
ASoft   (2006-11-10 12:28) [23]

http://delphimaster.net/view/15-1163150916/


 
inkvizitor ©   (2006-11-10 12:55) [24]


>Percent


> Давай, начинай творить.


Числа в мемо у меня вещественные,
a[i]:=IntToStr(или IntToFloat)(Memo1.Lines.Text);
не понимаю...
Можно и для КиДаун, если не трудно.
Спасибо!


 
ASoft   (2006-11-10 13:00) [25]

>Memo1.Lines.Text
c ума спрыгнул!?


 
Percent   (2006-11-10 13:02) [26]

a[i]:=IntToStr(или IntToFloat)(Memo1.Lines.Text);

Или. То есть, именно StrToFloat().

Цикл написать можешь?
Знаешь, что такое цикл?
Цикл по всем строкам мемо.
От нулевой до последней.


 
Плохиш ©   (2006-11-10 13:05) [27]


> Знаешь, что такое цикл?

Ну ты спросил 8-O Откуда оно может знать?


 
Percent   (2006-11-10 13:05) [28]

Блин. Я уже даже внимания на названия функций не обращаю. Думаю, что автор пишет правильно. И сам автоматом пишу, не глядя на его функции.

К автору: нет такой функции, как IntToFloat(). И функция IntToStr() делает обратное, нежели тебе надо. Давай, думай!

Тебе надо StrToFloat() и (уже потом, на следующих шагах твоей программы) FloatToStr(). Читай по ним справку.


 
inkvizitor ©   (2006-11-10 13:13) [29]


> c ума спрыгнул!?

Извините, будьте добры подсказать?


> Или. То есть, именно StrToFloat().

var A:array[1.16000] of float;
     B:array[1.16000] of float;
     i,j:integer;
begin
for i:=1 to 16000 do
for j:=1 to 16000 do begin
A[i]:=StrToFloat(Memo1.Lines.Text);
B[i]:=StrToFloat(Memo1.Lines.Text);
end;
Вообщем два мемо- два массива.
Знаю что бред, но чем богат тем и рад.


 
Percent   (2006-11-10 13:29) [30]

var A:array[1.16000] of float;

var A:array[1..16000] of float; {тут должны быть две точки}

Только почему у тебя такие огромные массивы? И циклы от 1 до 16000 - у тебя столько строк в мемо?

StrToFloat(Memo1.Lines.Text);

Почему ты используешь свойство Text? Используй индексированный доступ к строкам Memo1.Lines[i];

Наводящий вопрос: Как узнать, сколько строк в мемо, на этапе выполнения программы?


 
app ©   (2006-11-10 13:29) [31]

Зачем столько вопросов в одной теме?


 
Percent   (2006-11-10 13:30) [32]

Зачем столько вопросов в одной теме?

Мы пока с первым вопросом разбираемся.
До следующих двух, думаю, не скоро дело дойдет.


 
Anatoly Podgoretsky ©   (2006-11-10 13:32) [33]

> inkvizitor  (10.11.2006 12:55:24)  [24]

Опа, тогда как тебя понимать Саид?

> a[i]:=IntToStr(

Ты перевод то слова знаешь?


 
Anatoly Podgoretsky ©   (2006-11-10 13:35) [34]

> Percent  (10.11.2006 13:30:32)  [32]

Просмотрел всю ветку, диагноз - не дойдет, кто то раньше умрет.


 
Плохиш ©   (2006-11-10 13:35) [35]


> for i:=1 to 16000 do
> for j:=1 to 16000 do begin
> A[i]:=StrToFloat(Memo1.Lines.Text);
> B[i]:=StrToFloat(Memo1.Lines.Text);
> end;

Бред засчитан.


 
Percent   (2006-11-10 13:40) [36]

Просмотрел всю ветку, диагноз - не дойдет, кто то раньше умрет.

Да ладно, пусть попробует.
Авось, что-нибудь и получится.
Хотя... :((


 
inkvizitor ©   (2006-11-10 14:27) [37]

Все так посмеялись, а советов рельных мало...

> Просмотрел всю ветку, диагноз - не дойдет, кто то раньше
> умрет.

что это значит?
> Да ладно, пусть попробует.
> Авось, что-нибудь и получится.
> Хотя... :((

Percent спасибо за LInes[i] попробую.
Мне надо сделать анализ рядов и куда я их "затолкаю" эти данные,я только три компоненты нашел - Grid,F1Book,Memo?


 
Percent   (2006-11-10 14:34) [38]

Ты вначале с циклами разберись. Напиши, как ты будешь переводить данные из мемо в массив. Сюда напиши код. А потом уже про все остальное разговаривать будем. А то берешься за глобальные вопросы, не разбираясь в элементарных конструкциях и принципах.

Все так посмеялись, а советов рельных мало...

Правильно посмеялись.
А ты не смеши.
И меньше выступай.
И больше пиши кода.
И будет тебе счастье.

P.S. Ты там программу пишешь, или обедаешь?


 
koha ©   (2006-11-10 15:20) [39]

> Percent   (10.11.06 11:50) [14]
> Или у меня паранойя?

Параноя, батенька, это, по определению, когда болеют "новящими идеями" - у вас голюцинации. :-))


 
inkvizitor ©   (2006-11-10 16:45) [40]


> Ты там программу пишешь, или обедаешь?

одно другому не мешает.

> > for i:=1 to 16000 do
> > for j:=1 to 16000 do begin
> > A[i]:=StrToFloat(Memo1.Lines[i]);
> > B[i]:=StrToFloat(Memo2.Lines[j]);
> > end;

Массивы почему большие, потому что много данных надо ввводить (например исследование солнца - дипломнаяяяя)


> Ну ты спросил 8-O Откуда оно может знать?

Ну не надо так унижать все когдато начинали, правда?


 
Плохиш ©   (2006-11-10 16:49) [41]


> Ну не надо так унижать все когдато начинали, правда?

Не правда. Некоторые с книжек начинали, хотя сейчас это видно не в моде :-(


 
Percent   (2006-11-10 16:51) [42]

потому что много данных надо ввводить

Читай про динамические массивы.

например исследование солнца - дипломнаяяяя

Так ты студент?

Кстати, кода ты так и не привел.
А много кушать - вредно, замедляет умственную деятельность.


 
Ketmar ©   (2006-11-10 18:16) [43]

>[37] inkvizitor(c) 10-Nov-2006, 14:27
>Все так посмеялись, а советов рельных мало...
реальный совет тебе один: иди учить язык, который используешь.


 
inkvizitor ©   (2006-11-13 08:54) [44]

Percent, А теперь если не трудно второй вопрос:
Как в Chart-е выводить графики из мемо?
var  i,j:integer;
    X:array[1..16000] of real;
    Y:array[1..16000] of real;
begin
for i:=1 to memo1.Lines.Count-1 do
X[i]:=StrToFloat(Memo1.Lines[i]);          {преобразование в массив мемо1}
for j:=1 to memo2.Lines.Count-1 do
Y[j]:=StrToFloat(Memo2.Lines[j]);          {преобразование в массив мемо2}
end;
наверно опять чёто не то?
не могу найти лит-ру про динам. массивы.


 
novill ©   (2006-11-13 10:16) [45]

> [44] inkvizitor ©   (13.11.06 08:54)
> for i:=1 to memo1.Lines.Count-1 do

Ты в курсе что значение первых строчек в Мемо не будет попадать в массив?


> не могу найти лит-ру про динам. массивы.

Загружешь Delphi, жмешь F1, выбираешь закладку "Предметный указатель", набираешь dynamic arrays, нажимаешь Enter два раза.
В открывшейся странице читаешь примеры :) Если можешь понять английский текст, читаешь его. Этого достаточно.


 
Percent   (2006-11-13 10:24) [46]

Как в Chart-е выводить графики из мемо?

Не знаю. Никогда с TChart не работал. И разбираться ради тебя не хочу. Потому что ты не хочешь разбираться с программированием. Столько времени прошло, а ты не удосужился найти литературу. Даже по динамическим массивам, которые описаны практически в любой книге по программированию в Delphi. Ты напрячься не хочешь - зачем мне напрягаться?

Циклы, которые ты привел, почти правильные. Только считывать надо с нулевой строки, а не с первой, как у тебя. И индексная переменная j - лишняя; во втором цикле можно было бы обойтись той же i. И еще один момент: если у тебя в мемо неправильно введены числа, хотя бы с одной синтаксической ошибкой, то считывание в массив прервется на этой ошибке, причем, в какой строке это произойдет - из твоей программы никто не узнает. Сделай, чтобы программа сообщала пользователю хотя бы номер строки.

Ну и про динамические массивы почитай (http://delphikingdom.com/asp/viewitem.asp?catalogid=1184  раздел 2.17, хотя, рекомендую прочитать все), и сделай, наконец-то, свои массивы динамическими. Можно и по-другому поступить, но динамические массивы подойдут тебе лучше.

И еще. Сделай преобразование "назад", то есть, напиши код, чтобы данные из массивов заносились в третий и четвертый мемо.


 
inkvizitor ©   (2006-11-15 11:21) [47]


> Percent   (13.11.06 10:24) [46]

Спасибо нашел почитал.

> индексная переменная j - лишняя; во втором цикле можно было
> бы обойтись той же i


У меня два мемо и в каждом может быть разное количество строк.


 
Плохиш ©   (2006-11-15 11:30) [48]


> У меня два мемо и в каждом может быть разное количество
> строк.

Рыдал...


 
inkvizitor ©   (2006-11-22 11:32) [49]

inkvizitor
> > Percent   (13.11.06 10:24) [46]

Вообщем считаю данные из двух мемо и делаю вычисления потом
результат вывожу на др. мемо на  др. форме.
ПРОблема: результат выводится на вторую строку?(нужно на первую)
:

procedure TPagesDlg.OKBtnClick(Sender: TObject);
var  i,j,n:integer;
    ro,cov,sigmaX,sigmaY,A,Xsr,Ysr:real;
    X,Y:array of real;

begin

n:= memo1.Lines.Count;
PagesDlg.Visible:=False;
Form2.visible:=True;                       { переключение между формами}
OpenDialog1.Filter := "*.txt|*.txt";       {открытие файла в мемо1}
OpenDialog2.Filter := "*.txt|*.txt";       {открытие файла в мемо2}
SetLength(X,10000);
Xsr:=0;
for i:=0 to memo1.Lines.Count-1 do begin
X[i]:=StrToFloat(Memo1.Lines[i]);          {преобразование в массив мемо1}
Xsr:=X[i]+Xsr;
end;
Xsr:=Xsr/n;
SetLength(Y,10000);
Ysr:=0;
for j:=0 to memo2.Lines.Count-1 do
begin
Y[j]:=StrToFloat(Memo2.Lines[j]);          {преобразование в массив мемо2}
Ysr:=Y[j]+Ysr;
end;
Ysr:=Ysr/n;

for i:=0 to memo1.Lines.Count-1 do sigmaX:=sqr(X[i]-Xsr);
sigmaX:=sqrt((1/n)*sigmaX);

for j:=0 to memo2.Lines.Count-1 do sigmaY:=sqr(Y[i]-Ysr);
sigmaY:=sqrt((1/n)*sigmaY);

for i:=0 to memo1.Lines.Count-1 do
for j:=0 to memo2.Lines.Count-1 do
A:=(X[i]-Xsr)*(Y[i]-Ysr);
cov:=(1/n)*A;

ro:=cov/(sigmaX*sigmaY);
???Form2.Memo1.Lines.Add(Floattostr(abs(ro)));???
end;


 
Anatoly Podgoretsky ©   (2006-11-22 11:39) [50]

> inkvizitor  (22.11.2006 11:32:49)  [49]

>  ???Form2.Memo1.Lines.Add(Floattostr(abs(ro)));???

Form2.Memo1.Lines.Text := Floattostr(abs(ro))


 
click   (2006-11-22 18:04) [51]

после прочтения упалпоцтол и рыдал :)))))))))))))))


 
vasIzmax ©   (2006-11-22 20:11) [52]


> после прочтения упалпоцтол и рыдал :)))))))))))))))

100-пудово. Но грех над учащимся смеяться. А вообще весело вы тут рулите! :)


 
Джо ©   (2006-11-23 04:25) [53]

Определенно, вот этот студент желает научиться. Обычно уходят обиженными, да и с ЧЮ напряженка :)

2 vasIzmax ©
Тут тебе дело советуют — займись языком, потому что вслепую тыкаться сложно и непродуктивно.


 
inkvizitor ©   (2006-11-23 12:03) [54]


> Anatoly Podgoretsky ©   (22.11.06 11:39) [50]

Спасибо за совет.

> после прочтения упалпоцтол и рыдал :)))))))))))))))

Если после каждого быдешь рыдать взорвешся.

Люди, Если хотите просто посмеяться не пишите ничего.не тратьте время.


 
Elen ©   (2006-11-23 12:15) [55]

E[[[[ Щас насоветую....


> Как из Мемо(в нем уже есть числа в один столбец) сделать
> массив чисел

Зачем загаживать мемо - что просто массивом не обойдешся? Массив тоже можно в файл сохранить


> как компоненту Chart "заставить" выводить график

В чарте есть chart1.series[1].addx(<тут впиши данные по х>).


 
inkvizitor ©   (2006-11-23 12:21) [56]


> Elen ©   (23.11.06 12:15) [55]

Спасибо за чарт.

> Зачем загаживать мемо - что просто массивом не обойдешся?
>  

ну хотелось чтоб выглядело нормально. типа как в excel -загружаем и обрабатываем.


 
inkvizitor ©   (2006-11-25 16:10) [57]

Люди скажите как сэйфдиалог прописывать чтоб не писать вконце имени расширение.


 
Palladin ©   (2006-11-25 16:19) [58]

говорю, человек, волшебное свойство DefaultExt


 
inkvizitor ©   (2006-11-28 13:53) [59]


> Palladin ©   (25.11.06 16:19) [58]
> говорю, человек, волшебное свойство DefaultExt

не получается - "выбивает сразу".
begin

if SaveDialog1.Execute then
  Memo1.Lines.SaveToFile(SaveDialog1.DefaultExt);

end;
подскажите правильное написание ...


 
Anatoly Podgoretsky ©   (2006-11-28 14:42) [60]

> inkvizitor  (28.11.2006 13:53:59)  [59]

Что значит  "выбивает сразу".
Мне вообще не видится смысла в подобном синтаксисе, может ты объяснить что бы это значило, как оно должно работать для SaveToFile


 
inkvizitor ©   (2006-11-28 15:10) [61]


> Anatoly Podgoretsky ©   (28.11.06 14:42) [60]

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


 
Steep ©   (2006-11-28 15:14) [62]

SaveDialog1.DefaultExt := "pas";


 
inkvizitor ©   (2006-11-29 08:44) [63]


> Steep ©   (28.11.06 15:14) [62]

Спасибо за совет попробую!


 
inkvizitor ©   (2006-12-01 09:29) [64]

Как сделать разделение в Мемо? т.е. в мемо загружаем два столбца данных (*.тхт или *.DAT) нужно чтобы эти два столбца "раскидались" в два массива вещественных чисел.


 
ASoft   (2006-12-01 10:43) [65]

сколько ж можно, мучить бедное memo?.. )


 
inkvizitor ©   (2006-12-01 13:23) [66]

сколько надо столько и буду.


 
clickmaker ©   (2006-12-01 13:31) [67]


> 64] inkvizitor ©   (01.12.06 09:29)
> Как сделать разделение в Мемо? т.е. в мемо загружаем два
> столбца данных (*.тхт или *.DAT) нужно чтобы эти два столбца
> "раскидались" в два массива вещественных чисел.

Memo.Lines, Pos(), Copy(), StrToFloat()


 
Сергей М. ©   (2006-12-01 13:57) [68]


> в мемо загружаем два столбца данных (*.тхт или *.DAT)


Процитируй здесь фрагмент содержимого того самого файла (*.тхт или *.DAT) ..


 
Anatoly Podgoretsky ©   (2006-12-01 15:48) [69]

> inkvizitor  (01.12.2006 13:23:06)  [66]

А!
Тогда еще можно подождать.
Ты только скажи когда кончишь.


 
Плохиш ©   (2006-12-01 17:34) [70]


> Ты только скажи когда кончишь.

Кончил - не кончил, 3 минуты...


 
inkvizitor ©   (2006-12-02 16:46) [71]


> Процитируй здесь фрагмент содержимого того самого файла
> (*.тхт или *.DAT) ..

данные могут быть такими:
  22737.56      1.3509317E-03
  22738.09      1.3509317E-03
  22738.63      1.3509317E-03
  22739.16      1.3509317E-03
  22739.70      1.3509317E-03
  22740.23      1.3477606E-03
  22740.77      1.3440152E-03
  22741.30      1.3402835E-03
  22741.83      1.3365382E-03
  22742.37      1.3401280E-03
  22742.90      1.3469161E-03
а могут и такими:
  22750.23      0.2847682    
  22750.98      0.3346645    
  22751.74      0.3753366    
  22752.49      0.4131504    
  22753.25      0.4237683    
  22754.01      0.4164895    
  22754.76      0.3694635    
  22755.52      0.3213220    
  22756.27      0.2591151    
  22757.03      0.3117313    
  22757.79      0.4161148    
  22758.54      0.4886835    
  22759.30      0.4506118    
  22760.05      0.3956408    
  22760.81      0.5367150    
  22761.56      0.7047158    
  22762.32      0.8123572    
и длина столбцов несколько сотен, а то и до тысячи добегает
> Кончил - не кончил, 3 минуты...

Плохиш по себе людей не судят!!!


 
Anatoly Podgoretsky ©   (2006-12-02 20:14) [72]

> inkvizitor  (02.12.2006 16:46:11)  [71]

и что за два первых символа вначале и шесть в середине.
Но тебе явно хватит тривиального ReadLn


 
inkvizitor ©   (2006-12-04 13:32) [73]


> Anatoly Podgoretsky ©   (02.12.06 20:14) [72]


> и что за два первых символа вначале и шесть в середине.

извиняюсь я не понял про какие символы(точка, звездочка и Е[экспонента] между столбцами пробелы, числа дробные, -03  степень).

> Но тебе явно хватит тривиального ReadLn

Типа readln(Memo.Lines[].Pos[]) ;
или по другому?не знаю как прописывается а спросить не у кого:-(.


 
Плохиш ©   (2006-12-04 13:39) [74]


> inkvizitor ©   (04.12.06 13:32) [73]


> Типа readln(Memo.Lines[].Pos[]) ;
> или по другому?не знаю как прописывается а спросить не у
> кого:-(.

Может всё-таки почитаешь чего-нибуть?


 
Anatoly Podgoretsky ©   (2006-12-04 13:51) [75]

> inkvizitor  (04.12.2006 13:32:13)  [73]

> readln(Memo.Lines[].Pos[]) ;

Из этого правильно только readln(


 
Anatoly Podgoretsky ©   (2006-12-04 13:51) [76]

> Плохиш  (04.12.2006 13:39:14)  [74]

> Может всё-таки почитаешь чего-нибуть?

Не царское это дело.


 
inkvizitor ©   (2006-12-11 10:37) [77]

как пробелы считывать?Если выводить массив Х[i] то иногда проходит,а иногда нет. но когда Y[i] это не работает. Вот данные
    22737.56       1.3509317E-03
    22738.09       1.3509317E-03 ,  а вот резт-т:

X[i]     22737.56    
         22738.09
Y[i]    0,0013509317
        0,0013509317
Код программы:
type
   TMass=array of double;
var
x,y: TMass;
i,p1,p2,p3,p4,k,j: integer;
s: string;
begin
if Memo1.Lines.Count=0 then begin ShowMessage("нет данных!"); exit;end;
  Form2.Memo1.Lines.Clear;
  Form1.Visible:=False;
  Form2.Visible:=True;
  SetLength(x,Memo1.Lines.Count);
  SetLength(y,Memo1.Lines.Count);
  for i:=1 to length(x) do
   begin
   k:=1;
   p1:=0; p2:=0;p3:=0;p4:=0; {пробелы и числа}
   s:=Memo1.Lines.Strings[i];
   for j:=1 to length(s) do
      if (S[j]=".") then s[j]:=",";
   while (s[k]=" ")do  {поиск пробела в начале строки}
   begin
     p1:=p1+1;
     k:=k+1;
   end;
   p2:=p1;
   while (s[k]<>" ")do {поиск первого числа}
   begin
     p2:=p2+1;
     k:=k+1;
   end;
   p3:=p2;
   while (s[k]=" ")do   {поиск второго пробела}
   begin
     p3:=p3+1;
     k:=k+1;
   end;
   p4:=p3;
   while (s[k]<>" ")do   {поиск второго числа}
   begin
     p4:=p4+1;
     k:=k+1;
   end;
  Form2.Edit1.Text:=Copy(s,p1+1,p2-p1);
  Form2.Edit2.Text:=Copy(s,p3+1,p4-p3);
  x[i]:=StrToFloat(Copy(s,p1+1,p2-p1));  {запись числа в 1-й массив}
  y[i]:=StrToFloat(Copy(s,p3+1,p4-p3));  {запись числа в 2-й массив}
  Form2.Memo1.Lines.Add(floattostr( x[i](или y[i]))); {вывод массива на форму2 }
    end;
end;
Вообщем все таки не получается по человечески разрезать строку.HELP!!!


 
Elen ©   (2006-12-11 10:44) [78]


> inkvizitor

А ты не с мемо работай а с TstringGrid. И тудыть в колонки запихивай данные из разных файлов. Там на каждую колонку есть LoadFromFile. Дешево и красиво ;)


 
Elen ©   (2006-12-11 11:01) [79]


> данные могут быть такими:
>   22737.56      1.3509317E-03
>   22738.09      1.3509317E-03
>   22738.63      1.3509317E-03

Уж коли захочется Readln то примерно так :

readln(f,a);
a:=trim(a);
i:=length(a);while a[i]<>" " do begin b:=a[i]+b; dec(i);end;
a:=trim(copy(a,1,i));


Ну и в "а" будет первое в "b" второе число, как бы оно не выглядело. Приведеш его потом к числовому формату и делов...


 
Плохиш ©   (2006-12-11 11:11) [80]


> Elen ©   (11.12.06 11:01) [79]

А чем readln(f, float1, float2) не нравиться?


 
Elen ©   (2006-12-11 11:20) [81]


> А чем readln(f, float1, float2) не нравиться?

Можно (читать: нужно), но боюсь у автора файл форматирован как попало...


 
Anatoly Podgoretsky ©   (2006-12-11 12:21) [82]

А как попало?
Автор должен выдать эту информацию, если хочет получить квалифицированый совет. Но пока по данной гигантской ветке видно, что тривильного Readln достаточно


 
Elen ©   (2006-12-11 12:29) [83]


> Anatoly Podgoretsky

А можно вопрос не по теме?


 
Anatoly Podgoretsky ©   (2006-12-11 12:32) [84]

> Elen  (11.12.2006 12:29:23)  [83]

А почему мне?
Конечно вопрос не по теме, должен задаваться в отдельной теме и это не должно быть личной перепиской. Вопрос должен относиться ко всем.
Вот в таком виде можно.


 
Elen ©   (2006-12-11 12:34) [85]


> Anatoly Podgoretsky

Сразу Sorry за Офтоп.
Как модератору - не будете против если я Ник поставлю большими буквами, а то тут еще вдруг и перепутают кое с кем и сотрут?.


 
Anatoly Podgoretsky ©   (2006-12-11 12:54) [86]

> Elen  (11.12.2006 12:34:25)  [85]

Да вроде регистр не особо и влияет.


 
Elen ©   (2006-12-11 13:00) [87]


> Да вроде регистр не особо и влияет.

Ладно, Сорри за Офтоп - это можно стирать. Просто стерли один вопросец по сабжу, вот думаю чего там не так было, может перепутали с кем... Ну ладно проехали, еще раз извиняюсь.


 
inkvizitor ©   (2006-12-12 09:23) [88]

Люди, проблема вот в чем запускаем программу загружаем данные *.txt(см.  inkvizitor ©   (11.12.06 10:37) [77] ) (ну примерно 300-500 строк и более) программа один раз работает а второй или третий раз НЕТ - Переполнение стека(Из-за динамич. Массива)Как это предотвратить?Что надо очищать перед каждым запуском?


 
inkvizitor ©   (2006-12-12 09:38) [89]

Вопрос не относится к предыдущим.
Как разработать базу данных в Delphi используя InterBase?
1   Имеется карточка ввода, в ней данные которые нужно раскидать по разным таблицам. Как это сделать?(Желательно примерный код)
2   Как отображать информацию из базы данных в Excel документ, создание отчета?(Желательно примерный код)
3   И вообще где можно найти много-много литературы полезной про InterBase, именно про InterBase и ничего кроме?
Извиняюсь что всех уже порядком достал, но на то и вы есть Учителя.


 
Elen ©   (2006-12-12 10:27) [90]


>  запускаем программу загружаем данные *.txt

Как загружаеш? во что? Каким компонентом?

> где можно найти много-много литературы полезной про InterBase,
>  именно про InterBase и ничего кроме?

А чем IB отличается от остальных? Принципы те же. У Подгорецкого на домашнем сайте кажись есть про базы


 
inkvizitor ©   (2006-12-13 10:41) [91]

> Как загружаеш?
ОЧень поросто через Button: открыть-ОК
во что?
В МЕМО
Каким компонентом?
savedialog.
Вообщем скажите,как стек очищать перед каждым запуском программы?
Чтобы память ЦПУ не напрягалась.


 
inkvizitor ©   (2006-12-13 10:44) [92]


> А чем IB отличается от остальных? Принципы те же.

Нужно именно InterBase и ничего кроме него.Подскажите где книги взять(скачать) или дайте дельный советик?


 
Игорь Шевченко ©   (2006-12-13 10:44) [93]


> Вообщем скажите,как стек очищать перед каждым запуском программы?
>
> Чтобы память ЦПУ не напрягалась.


Вантузом


 
inkvizitor ©   (2006-12-19 09:35) [94]

как правильно записать Free?
т.е. объект.Free или как еще?
у меня объект динам. массив.


 
Сергей М. ©   (2006-12-19 10:09) [95]

SetLength(дин_массив, 0);



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

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

Наверх





Память: 0.71 MB
Время: 0.012 c
10-1127803921
pavel_guzhanov
2005-09-27 10:52
2007.01.07
Как программно сделать закрепленную область в Excel?


15-1166467423
Kolan
2006-12-18 21:43
2007.01.07
По каккому признаку упорядочить файлы и папки на винте?


2-1166388580
Kostafey
2006-12-17 23:49
2007.01.07
Delphi-аналог окна udl


15-1166125578
AntiUser
2006-12-14 22:46
2007.01.07
Видеофон на основе двух Web-камер


15-1166452413
Reactor
2006-12-18 17:33
2007.01.07
Аксесс, результат запроса в переменную





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский