kategoria: Blitz
[#1] Gdzie jest wynik (pełna ścieżka) komendy AddPart()?
Cześć
Jeśli dobrze rozumiem opis to pełna ścieżka powinna być w zmiennej dirName (powinna zostać zmieniona jeśli komenda AddPart() zwróci sukces)


NAME
AddPart -- Appends a file/dir to the end of a path (V36)

SYNOPSIS
success = AddPart( dirname, filename, size )
D0 D1 D2 D3

BOOL AddPart( STRPTR, STRPTR, ULONG )

FUNCTION
This function adds a file, directory, or subpath name to a directory
path name taking into account any required separator characters. If
filename is a fully-qualified path it will totally replace the current
value of dirname.

INPUTS
dirname - the path to add a file/directory name to.
filename - the filename or directory name to add. May be a relative
pathname from the current directory (example: foo/bar).
Can deal with leading '/'(s), indicating one directory up
per '/', or with a ':', indicating it's relative to the
root of the appropriate volume.
size - size in bytes of the space allocated for dirname. Must
not be 0.

RESULT
success - non-zero for ok, FALSE if the buffer would have overflowed.
If an overflow would have occured, dirname will not be
changed.



Bo mi coś to nie wychodzi....
[#2] Re: Gdzie jest wynik (pełna ścieżka) komendy AddPart()?

@peceha, post #1

Wedle opisu w pierwszym argumencie pchasz ścieżkę, do której ma być doklejona nazwa pliku, w drugim nazwę pliku, w trzecim wielkość bufora z pierwszego argumentu. Wewnętrznie pewnie funkcja patrzy czy #3 jest większe lub równe długości stringów #1 i #2, jak tak to dokleja, jak nie to nie. Jak dostaniesz w wyniku zero to się nie udało, jak niezero to się udało. ;)

Nie możesz tego wywołać "AddPart("super/sciezka", "mojPlik", strlen("super/sciezka"))" bo #1 nie przewiduje więcej miejsca na dane. Pewnie piszesz w Blitzu, nie wiem jak to się tam robi ale musisz zadeklarować dużo większego stringa niż ścieżka którą przekazujesz, wpisać w niego ścieżkę i wtedy taki twór rzucić jako pierwszy argument. W C byś zrobił coś typu:

char path[300] = "super/sciezka";
int result = AddPart(path, "mojPlik", 300);


Ostatnia aktualizacja: 20.08.2018 11:02:15 przez teh_KaiN
[#3] Re: Gdzie jest wynik (pełna ścieżka) komendy AddPart()?

@teh_KaiN, post #2

Tak to wyglada od srodka w arosie

https://github.com/michalsc/AROS/blob/master/rom/dos/addpart.c
[#4] Re: Gdzie jest wynik (pełna ścieżka) komendy AddPart()?

@teh_KaiN, post #2

Dzięki, to wyjasnilo sprawę -teraz tylko muszę rozkminic jak właśnie w blitzu zrobić coś na wzór
char path[300]
[#5] Re: Gdzie jest wynik (pełna ścieżka) komendy AddPart()?

@peceha, post #4

Użyj maxlen.
[#6] Re: Gdzie jest wynik (pełna ścieżka) komendy AddPart()?

@cholok, post #5

Dzięki
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem