Nie znajduje pliku po wczytaniu jego nazwy z tablicy.

0

Witam otóż mam taki problem. Mam plik tekstowy pliki.txt o takiej zawartości:

1.txt
2.txt
3.txt
4.txt
5.txt

Następnie w programie wczytuje zawartość pliku do jednowymiarowej tablicy stringów [jak wypisuje sobie tą tablice to jej zawartość się zgadza]. Następnie chcę wczytać inny plik o jednej z nazw wczytanych z pliku pliki.txt do innej tablicy.

Załóżmy że chce wczytać plik 1.txt znajdujący się w tym samym folderze co program (więc nie muszę podawać ścieżki dostępu). Plik 1.txt zawiera jakieś tam dane, które po podaniu w Assign po prostu jego nazwy w sposób

 Assign(plik, '1.txt');

wczytują się bez problemu ale gdy zastosuje poniższy kod to plik nie jest znajdywany.

Plik 1.txt ma 'współrzędne' w tablicy tab - 'tab[1]' (tablica [1..10]) i używam sobie kodziku:

procedure wczyt_plik;
begin
  Assign(plik, tab[1]);
{$I-}
  Reset(plik);
{$I+}
  for curposx := 1 to N do
  begin
    readln(plik, linja);
    for curposy := 1 to N do tab[curposx][curposy] := PobierzLiczbe(curposy, linja);
  end;
  Close(plik);
end;

Jakieś pomysły?

0

pokaż czytanie tego pierwszego pliku (z listą nazw plików)

0

tab2 - tablica z nazwami plików ofc;p

Assign(file2, file_name2);
Reset(file2);
lv_i:=0;
Repeat
lv_i:=lv_i+1;
ReadLn(file2,tab2[lv_i] );
Until lv_i=6;
Close(file2);
0

Czemu masz przed Reset {$I-} ? Pozwól mu się wywalić to może nam coś więcej powie. A jeśli wyłaczasz automatyczne crashowanie gdy nie ma pliku to obsłuż system gdyby coś poszło nie tak:
[code]
if IOResult<>0 then
[/code]

EDIT: Po co tablica jest 1..10 skoro czytasz 6 elementów?

0

w jednej pętli czytasz do 6 a w drugiej do jakiegoś N. zaprowadź porządek.

0
payl napisał(a)

Czemu masz przed Reset {$I-} ? Pozwól mu się wywalić to może nam coś więcej powie. A jeśli wyłaczasz automatyczne crashowanie gdy nie ma pliku to obsłuż system gdyby coś poszło nie tak:
[code]
if IOResult<>0 then
[/code]

EDIT: Po co tablica jest 1..10 skoro czytasz 6 elementów?

Elementów będzie więcej, na razie taki przykład wypisałem.

Azarien napisał(a)

w jednej pętli czytasz do 6 a w drugiej do jakiegoś N. zaprowadź porządek.

Ponieważ w pierwszej pętli czytam tylko nazwy plików, które wykorzystuje potem przy wczytywaniu innych plików do zupełnie innej tablicy które zawierają określoną ilość N elementów dlatego 2 różne pętle. Wiec raczej porządek jest. Nie jestem pewien czy dobrze zrozumieliście mój problem.

Chodziło mi o to że po wczytaniu nazw tych plików, gdy próbuje użyć jednej z tych nazw w tej dłuższej pętli (z N) to nie znajduje mi pliku o danej nazwie, ale jak wpisze 'ręcznie' czyli normalnie np Assign(plik, '1,txt') to już tak. I tu jest problem czemu tego pliku nie znajduje po przyporządkowaniu mu nazwy która znajduje się w innej tablicy ;o

0

Może pokaż plik 'pliki.txt' - zobaczymy co tam tak naprawdę jest.

0

praktycznie to co napisałem, tylko że mają one inną nazwę niż 1.txt 2.txt itd;p

ale tak btw, znalazłem swój naprawdę durny błąd, nie wiem czy wynikający z braku myślenia czy zmęczenia [bo że jak nie ma ścieżki dostępu to trza wywoływać z miejsca gdzie ów program się znajduje aye?], a program uruchamiałem, jak nie trudno się domyśleć... z poziomu kompilatora...

Przepraszam za w sumie, zmarnowane miejsce na forum, i za wasz zmarnowany czas. :|

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