Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Rzutowanie typów i dziwny komuniat

0 views
Skip to first unread message

rav...@promail.pl

unread,
Feb 12, 2001, 4:17:55 PM2/12/01
to
Piszę właśnie (usiłuję pisać) program, który po pobraniu ścieżek do plików (np:
d:\program\plik.txt) z pliku tekstowego, ma przekopiować te pliki do innego
katalogu (np: e:\program2\plik.txt). Zastosowałem funkcję CopyFile(), lecz ta
działa tylko po wspisaniu całej ścieżki dostępu (skąd - dokąd). chciałem użyć
rzutowania typów i wymyśliłem:
type
TPChar=^string;
var
kopiuj,zrodlo,docelowo:string;
skad,dokad:pchar;
dane:textfile;
zn:char;
idx:integer;
jeden,dwa:pchar;
begin
zn:='\';
AssignFile(archiwum,'d:\księga\dane.txt');
reset(dane);
readln(dane,zrodlo);
docelowo:=zrodlo;
idx:=pos(zn,zrodlo);
delete(zrodlo,1,idx);
kopiuj:='a:\'+zrodlo;//zmienia napęd na a:\
TPChar(skad)^:=docelowo;
tpchar(dokad)^:=kopiuj;
copyfile(skad,dokad,false);
closefile(dane);
end;

Gdzie popełniłem błąd?

Pozdrawiam i Dziękuję za pomoc!

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Arek

unread,
Feb 12, 2001, 6:36:10 PM2/12/01
to

Użytkownik <rav...@promail.pl> napisał w wiadomości
news:4d96.000000...@newsgate.onet.pl...

> Piszę właśnie (usiłuję pisać) program, który po pobraniu ścieżek do plików
(np:
> d:\program\plik.txt) z pliku tekstowego, ma przekopiować te pliki do
innego
> katalogu (np: e:\program2\plik.txt). Zastosowałem funkcję CopyFile(), lecz
ta
> działa tylko po wspisaniu całej ścieżki dostępu (skąd - dokąd). chciałem
użyć
> rzutowania typów i wymyśliłem:
> type
> TPChar=^string;
[reszta ciach]

Po pierwsze typ PChar jest zdefiniowany po drugie nie jest to wskaźnik na
string. PChar jest wskazaniem na łańcuch znaków zakończony #0. Tak się
składa, że Delphi ma wbudowaną konwersję string<->PChar
wystarcz więc zapisać następująco: zmienna_typu_pchar:=
PChar(zmienna_typu_String). Konwersja w drugą stronę nie wymaga już jawnego
rzutowania tj.: zmienna_typu_String:= zmienna_typu_pchar.
Rzutowanie w pierwszym wypadku jest konieczne gdyż string to także wskaźnik.
Pozdrawiam
Arek


Przemas

unread,
Jun 1, 2001, 5:40:08 AM6/1/01
to

Użytkownik <rav...@promail.pl> napisał w wiadomości
news:4d96.000000...@newsgate.onet.pl...

> TPChar(skad)^:=docelowo;
> tpchar(dokad)^:=kopiuj;
> copyfile(skad,dokad,false);

A moze wystarczy:
copyfile(Pchar(docelowo), Pchar(kopiuj), false)?

(albo jakos tak) :-D


0 new messages