Zapis do 2 kolumn w pliku

0

var
TF : TextFile;
nick: String[20];
ip: String[20];

begin
AssignFile(TF, 'C:\sgadka.cfg');
Append(TF);
try
nick := InputBox('Dodawanie uzytkownika 1/2','Podaj nazwe:','');
ip := InputBox('Dodawanie uzytkownika 2/2','Podaj IP:','');
Writeln(TF, nick, ip); // dopisanie linii

.... itd

Chcialbym zeby mi wpisywalo to w pliku w 2 kolumnach (ip zeby zaczynalo sie wpisywac od 20 znaku w lini). Seek tu nie chce dzialac. Z gory dzieki za pomoc

0

po 1 czy nie prosciej zorbic
var
TF : TextFile;
nick: String[20];
ip: String[20];

begin
AssignFile(TF, 'C:sgadka.cfg');
Append(TF);
try
InputBox('Dodawanie uzytkownika 1/2','Podaj nazwe:',nick);
InputBox('Dodawanie uzytkownika 2/2','Podaj IP:',IP);
Writeln(TF, nick, ip); // dopisanie linii

no a na wiecej nie mam czasu :) hehe Pozdrowienia dla Sheitara i Szymka... innych jeszcze dobrze nie znam ale wiem ze tych dwoch do dobzi programisci nie obrazajac inych :-)

0

Jeżeli plik jest pusty lub jesli jest krótszy niż wymagana pozycja to Seek nie zadziała.

0

Jeżeli plik jest pusty lub jesli jest krótszy niż wymagana pozycja to Seek nie zadziała.

Mnie sie wydaje ze seek nie dziala z TextFile tylko File (ale jak robie File to sie sypie all) - chociaz co do dzialania seek nie jestem pewien

0

Jeśli dobrze zrozumiałem, to wystarczy zrobic taki manewr:
[code]Writeln(TF, nick:20, ip:25); [/code]
Liczby po zmiennych wpisywanych do pliku oznaczają na ilu znakach ma być zapisany w pliku dany element, gdy dany element jest krótszy, to jest uzupełniany odstępami, spacjami (tak samo jak przy wyswietlaniu na ekran, bo ekran, to nic innego jak plik :-) ,ktory jest parametrem domyślnym procedury write/read). Czyli np. jeśli przewidujesz, że najdłuższy nick będzie miał 20 znaków, IP również 20 znaków, to odpowiedni będzie zapis jak powyżej.
Proponuję sobie z tym poeksperymentować, jeśli zaś chodzi o komendę seek(zmienna plikowa,gdzie skoczyc) to działa ona tylko dla plików elementowych (file of...) oraz dla plików niezdefiniowanych (file), dla plików tekstowych (text) polecenie to nie działa (między innymi po to jest polecenie append).

pozdrawiam

0

Jeśli dobrze zrozumiałem, to wystarczy zrobic taki manewr:
[code]Writeln(TF, nick:20, ip:25); [/code]

To juz jest prawie to ! :-)
Prawie dlatego ze mi nicki i ip wyrownuje do prawej strony. Tzn jak mam nick 9 literowy i Ip 15 znakow to pierw mam 11 spacji z pozniej dopiero 9 liter nicku, nastepnie 5 spacji i 15 znakow nicku ;-(
To by bylo super gdyby tylko zaczynalo od znakow a nie spacji :-)

Ale dzieki wielkie !

0

Niestety, cieżko to obejść - mogłbyś zrobić pętelkę uzupełniająca do np 25 spacji i tak np:

var
space1,space2:string[25];
i:byte;

begin
:
twój kod
:
space1:='';
space2:='';
for i:=1 to 25-length(nick) do
space1:=space1+' ';
for i:=1 to 25-length(ip) do
space2:=space2+' ';
writeln(TF,nick,space1,nick,space2);
end.

Jeżeli w pliku nie ma dalszych kolumn, to zmienna space2 nie jest potrzebna.

pozdrawiam !!

0

A od czego masz funkcje Trim ?

Trim(' Nick') zwroci 'Nick';

i po spacjach :)

0

A od czego masz funkcje Trim ?

Trim(' Nick') zwroci 'Nick';

i po spacjach :)

No ale to wroce do punktu wyjscia!
mnie chodzi zeby miec 'Nick ' zrobione z 'Nick'

Wiem juz jak z 'Nick' zrobic ' Nick' ale do tego co ja chce dojsc to nadal nie moge :(

0

Dorób pętlę:

Repeat
Str:=Str+#32;
Until Length(Str)>10;

0

Dorób pętlę:

Repeat
Str:=Str+#32;
Until Length(Str)>10;

Okej !!!!!!! Szymek .... wygrales ;P hehe

Musialem tylko zamienic ">" na "=" bo mi sie program wieszal... ale po zmianie jest okej :-)
I kolejny zyciowy problem rozwiazany ;-) hie hie :P

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