Witam, kod pisałem bardzo dawno ale potem miałem miesieczna przerwe a juz niespelna tydzien i projekt musze oddac i tu pojawia sie kilka prostych problemów, w google szukałem i nie potrafie nic znaleźć.
if Application.MessageBox('Czy chcesz pobrać dane z pliku??', 'Question', MB_YesNo + MB_IconQuestion) = IdYes then
OpenDialog1.InitialDir := ExtractFileDir(Application.Exename);
OpenDialog1.Filter := 'All Files|*.txt;*.TXT' ;
OpenDialog1.Execute ;
Chciałbym by domyślnym folderem dla imoportowanego pliku tekstowego był folder gdzie jest exek aplikacjii, ale nie smiga.
Jak pobrac liczby z memo ? Jak sie dowiedziec ile lini ma memo? Próbowałem w ten sposob:
countMEMO:= Memo1.lines.Count;
ale linie w memo sa stringami wiec to chyba odpada, gdzie countMEMO to suma lini pliku(ich liczba).;
2. Chciałbym wykorzystac gotowy program ktory mam juz od dluzszego czasu podmieniajac plik na memo:
program project1;
var F:Text;
s:string;
a,b,c,delta,discriminant,re,im:real;
i,dok1,dok2:integer;
begin
{teraz odczyt z pliku}
Assign(F, 'cycki.txt');
Reset(F);
Writeln('Z jaka dokladnoscia maja zostac podane ewentualne pierwiastki?(a -liczba cyfr,b - liczba cyfr po przecinku');
write('a - ');
readln(dok1);
write('b - ');
readln(dok2);
while not eof(f) do
begin
ReadLn(F, a,b,c);
delta:=b*b-(4*a*c);
if(a=0) then write('Jest to funkcja liniowa, jej rozwiazanie to ',-c/b:dok1:dok2)
else
if(delta=0) then write('Funkcja ma jedno miejsce zerowe jest nim ',-b/(2*a):dok1:dok2)
else
if(delta>0) then write('x1= ',(-b-(sqrt(delta)))/2*a:dok1:dok2,' x2= ',(-b+(sqrt(delta)))/2*a:dok1:dok2) else
begin
re := -b / (2 * a);
discriminant := sqr (b) - 4 * a * c;
im := sqrt (abs (discriminant)) / (2 * a);
if discriminant >= 0
then write ('Pierwiastki to ', re + im:dok1:dok2, ' i ', re - im:dok1:dok2)
else write ('Pierwiaski zlozone: ', re:dok1:dok2, 'I*', im:dok1:dok2, ' and ', re:dok1:dok2, 'I*', im:dok1:dok2) ;
//if (delta)<0 then write('Pierwiastki nierzeczywiste x1=' ,-b+sqrt(-delta)/(2*a):dok1:dok2,'i x2=',-b+sqrt(-(delta)):dok1:dok2,'i');
readln();
end;
readln();
end ;
end.
W tym przypadku Eof zamienie liczbą lini memo, ale niewiem jak zapisac współczynniki z linii memo(który jest stringiem) do zmiennych a,b,c.
Nie ukrywam ze zalezy mi na wygodnym wczytywaniu współczynników poprzez Readln(F,a,b,c);
Moja aplikacja liczaca rozwiazania rownan kwadratowych ma juz 23 MB, prawdopodobnie coś sknociłem, co może być powodem tak duzej wagi? (pisze w lazarusie, wiem ze kompiluje on na wiele platform ale to cos za duzo)
PROSZE O WYROZUMIAŁOŚĆ.
Teoretycznie moge dodac button z wczytaniem z pliku i od razu wypisaniem ale jak moge to zrobic by sie wywołał open/save dialog? Chodzi mi o taka sytuacje:
Jak sie odwołać do pliku wybranego przez uzytkownika, poprzez jaka funkcje, by go potem przypisac do zmiennej. Gdzies to widzialem na forum ale znalezc nie moge. Mam nadzieje ze ktos zrozumie mój bełkot.
dodanie znacznika <code class="delphi"> - fp