Otwieranie istniejacego pliku i wyciagniecie danych

0

Witam wszystkich, muszę napisać program w delphi który będzie otwierał plik txt (w pliku są dwie kolumny z liczbami), a następnie wybierał te wiersze z pierwszej kolumny, w których nastąpiła zmiana znaku z plusa na minus. Chodzi o to że jeśli w kolumnie A nastąpi zmiana wartości z dodatnich na ujemne to wtedy tworzy się nowy plik, w którym zostanie zapisana pierwsza ujemna wartość z kolumny A i odpowiadająca jej wartość z kolumny B, i tak dalej aż do końca pliku. Jestem początkującym programistą i niestety nie mogę sobie z tym poradzić:( Wiem że muszę wpisać formułę:

if x0[1]>=0 and x[1]<0 then writeln (x[1]:2:6,'   ',x[2]:2:6);

ale nie wiem co dalej, jak to powiązać z otwarciem pliku:( Proszę bardzo o pomoc.

0

Czytałem to kilka razy, ale może jestem zbyt ograniczony aby Ciebie zrozumieć co dokładnie chcesz uzyskać. Co ma powodować zmiany w tej kolumnie A, jakiś inny program? Może wklej kod, który już masz albo opisz to dokładniej, bo podejrzewam, że nie tylko ja się gubie. Poza tym tutaj pomagamy naprowadzając na rozwiązanie, a Ty najwyraźniej chcesz gotowca, bo chyba nie masz nic napisanego samodzielnie, a potrzebujesz prawdopodobnie jakieś tam zaliczenie.

0

Chodzi o to że mam plik txt (w załączniku) w którym są dwie kolumny liczb. W każdej z dwóch kolumn liczby zmieniają się z dodatnich na ujemne i odwrotnie. Ja chciałbym napisać program który otworzy zamieszczony plik txt, znajdzie w pierwszej kolumnie miejsce, w którym jest przejście z liczby dodatniej na ujemną (czyli było np. 100 w kolumnie pierwszej i 30 w drugiej,a w kolejnym wierszu jest -60 w pierwszej i 12 w drugiej) i wyrzuci mi do nowego pliku txt tylko ten wiersz w którym nastąpiło przejście (czyli wiersz -60 dla pierwszej i 12 dla drugiej) itd. dla reszty pliku - chce żeby znalazł wszystkie przejścia z + na - i zapisał je w nowym pliku, w którym będą dwie kolumny tylko z tymi "wyłapanymi" wartościami. Nie chce gotowego pliku, podstawowe rzeczy umiem zrobić ale nie ukrywam, że dopiero zaczynam zabawę z delphi i póki co to zadanie mnie po prostu przerasta, dlatego też zwracam się z prośbą o pomoc, pozdrawiam.

0

O ile dobrze zrozumiałem, to chodzi Tobie o coś co w Delphi zadziała tak, jak kod poniżej. I przenoszę wątek do działu Newbie, bo teraz wiedząc o co chodzi, uważam Twój problem jednak za zagadnienia z podstawami języka.

//...
const
  Separator = #9;
  InFileName = 'D:\0.7.txt';
  OutFileName = 'D:\result.txt';
var
  S, S1, S2 : string;
  InSL, OutSL : TStringList;
  I, One, Two, Code1, Code2 : integer;
begin
  InSL := TStringList.Create;
  OutSL := TStringList.Create;
  if FileExists(InFileName) then
  begin
    InSL.LoadFromFile(InFileName);
    for I := 0 to InSL.Count - 1 do
    begin
      S := InSL[I];
      S1 := Copy(S, 1, Pos(Separator, S) - 1);
      S2 := Copy(S, Pos(Separator, S) + Length(Separator), MaxInt);
      Val(S1, One, Code1);
      Val(S2, Two, Code2);
      if (Code1 = 0) and (Code2 = 0) then
      begin
        if (One > 0) and (Two < 0) then
        begin
          OutSL.Add(S);
        end;
      end;
    end;
    OutSL.SaveToFile(OutFileName);
  end;
  InSL.Free;
  OutSL.Free;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1