jak wydobyć extractfilename z openpicturedialog.files

0

Witam, mam kolejny problem, mianowicie chcę wydobyć nazwę pliku z openpicturedialog.files (właściwie to nazwy-multiselect)
Kod:

 memo1.Assign(openpicturedialog1.Files);

wczytuje mi nazwy plików wraz ze ścieżką. Jak z tego wydobyć samą nazwę pliku?
Próbowałem zrobić tak:

 
for i:=0 to openpicturedialog1.ComponentCount-1 do
Memo1.Lines.Add(Extractfilename(OpenPictureDialog1.FileName[i]));

ale zamiast nazw plików w memo lądują litery C i po kilku liniach D
Nie mam zielonego pojęcia jak się do tego zabrać

0

Zastanawiasz się może nad tym, co robisz?
Patrz:
Skoro na początku robisz:

memo1.Assign(openpicturedialog1.Files);

To z jakiej racji potem nagle odwołujesz się do:

OpenPictureDialog1.FileName[i]

Poza tym skąd niby wziąłeś to:

.ComponentCount-1

?

Hint: property Files z OpenPictureDialog jest typu TStrings; ilość plików pobierzesz za pomocą Files.Count, a do konkretnego odwołasz się korzystając z Files[index].

0

Pierwszy fragment kodu to sposób w jaki wczytywało mi nazwy ze ścieżką. I teraz zamiast tego dałem drugi fragment kodu.
Fakt ten

.ComponentCount-1 

jest trochę bez sensu, ale nie znalazłem nigdzie metodyFiles.Count

 o której piszesz. Prawdopodobnie dlatego, że nie wiedziałem czego szukać.
Poza tym po zmianach:
```delphi
 for i:=0 to openpicturedialog1.Files.Count-1 do
begin
Memo1.Lines.Add(Extractfilename(OpenPictureDialog1.FileName[i]));
end;

do memo dalej trafiają wiersze: pusty,C,pusty,pusty,D (przy wybieraniu wielu plików, przy pojedyńczym pliku dodaje tylko pusty wiersz)

1
maniutek20 napisał(a):

do memo dalej trafiają wiersze: pusty,C,pusty,pusty,D (przy wybieraniu wielu plików, przy pojedyńczym pliku dodaje tylko pusty wiersz)

Mam dla ciebie złą wiadomość: Tobie nie da się pomoc bo nie potrafisz zrozumieć odpowiedzi.

0

A u mnie działa może napisz dokładnie co robisz od momentu samego wywołania okna dialogowego.

0
-123oho napisał(a):
maniutek20 napisał(a):

do memo dalej trafiają wiersze: pusty,C,pusty,pusty,D (przy wybieraniu wielu plików, przy pojedyńczym pliku dodaje tylko pusty wiersz)

Mam dla ciebie złą wiadomość: Tobie nie da się pomoc bo nie potrafisz zrozumieć odpowiedzi.

No dobra mistrzowie: dział w ktrórym jestem nazywa się NEWBIE, tak?
Piszę w poście: Nie mam zielonego pojęcia jak się do tego zabrać,tak?
Dostaję pierwszą odpowiedź, dla NEWBIE i zupełnie bez pojęcia może być trochę enigmatyczna, tak?

Więc jak dostaję odpowiedź "Tobie nie da się pomoc bo nie potrafisz zrozumieć odpowiedzi", to w głowie mojej rodzi się rada:
Zamknijcie to forum i tą stronę jak nie chcecie mieć do czynienia z ludźmi chcącymi coś zrozumieć i nauczyć się programowania.

0

@szopenfx
Dzięki za zainteresowanie
Wcześniej mam:

 procedure TForm1.Button2Click(Sender: TObject);
  var
  i:integer;
begin
 if OpenPictureDialog1.Execute then
for i:=0 to openpicturedialog1.Files.Count-1 do
begin
Memo1.Lines.Add(Extractfilename(OpenPictureDialog1.FileName[i]));

end
 end;
2

zamiast FileName[i] użyj Files[i]
Filename to nazwa pojedynczego pliku i odwołujesz się do pojedynczej literki jak w twoim kodzie. Na użytkownika -123oho staraj się nie zwracać uwagi to jego "standardowe" podejście

0

Dzięki, samemu bym nad tym siedział do wielkanocy, a nie wiem czy bym na to wpadł.

0

No dobra mistrzowie: dział w ktrórym jestem nazywa się NEWBIE, tak?

Możesz używać jakiejś przeglądarki która podkreśli ci literówki? Bo coś dużo ich robisz.
Tak, jesteś w dziale Newbie. I?

Piszę w poście: Nie mam zielonego pojęcia jak się do tego zabrać,tak?

Tak, ale widać że jakieś pojęcie masz. Więc kłamiesz.

Dostaję pierwszą odpowiedź, dla NEWBIE i zupełnie bez pojęcia może być trochę enigmatyczna, tak?

Tak, może. I co, czy to znaczy że od razu musisz odpowiedzieć? Ja zazwyczaj gdy dostaję odpowiedź, mimo że NEWBIE (koniecznie wielkimi literami) nie jestem, to dokładnie ANALIZUJĘ, gdy mam jakieś pytania, coś jest niejasne, używam TYPOWEJ reguły: 1. Google 2. TBrain 3. Eksperyment . Taki problem było zrobić to samo? Widać dla ciebie tak!
To jest typowe założenie: Jestem na forum, tu myślą za mnie, więc ja wklejam kod i mówię czy działa czy nie. Natomiast ja się z tym założeniem nie zgadzam.

Więc jak dostaję odpowiedź "Tobie nie da się pomoc bo nie potrafisz zrozumieć odpowiedzi", to w głowie mojej rodzi się rada:
Zamknijcie to forum i tą stronę jak nie chcecie mieć do czynienia z ludźmi chcącymi coś zrozumieć i nauczyć się programowania.

Jeżeli chcesz coś zrozumieć, to MYŚLISZ, nie lecisz na forum.
Dostałeś odpowiedź WYRAŹNĄ! Było że masz użyć Count z Files, nawet jak odwoływać się do elementów! No ale przecież, ty musiałeś WKLEIĆ kod (przy czym dużo się nauczyłeś), stwierdzić że NIE DZIAŁA i pójść płakać na forum, tak?
0% zrozumienia problemu, 100% wklejania gotowców. W takim wypadku rzeczywiście warto zamknąć to forum, bo ludzie nie uczą się programować, a wklejać gotowy kod.

Na użytkownika -123oho staraj się nie zwracać uwagi to jego "standardowe" podejście

Nie rozumiem argumentacji. To że to moje standardowe podejście zmienia zasadność/bezzasadność moich postów?
Zasadność moich postów to w ogóle inna sprawa. To, że ja usiłuję "robić" osoby które są niezależne ode mnie, jest złe. Wy wolicie uzależniać osoby od siebie, tj. poprawmy mu ten kod i czekajmy aż znowu zrobi ten sam błąd. Nie dałeś mu zrozumieć jak działa pętla, nie dałeś mu zrozumieć dlaczego robi źle. Ja niestety stawiam zrozumienie problemu nad jego rozwiązaniem.

bym nad tym siedział do wielkanocy, a nie wiem czy bym na to wpadł.

Cytuję oryginalną odpowiedź, której nie zaakceptowałeś bo według ciebie nie rozwiązuje ona problemu:

ilość plików pobierzesz za pomocą Files.Count, a do konkretnego odwołasz się korzystając z Files[index].

Może mi ktoś wytłumaczyć co tutaj jest takiego trudnego?! Bo ja nie widzę nic, co dla początkującego powinno być trudne.

zamiast FileName[i] użyj Files[i]

Następnym razem proponuję samemu zmienić (mniejsze ryzyko złego zmieniania) i KONIECZNIE guzik skopiuj do schowka, bo inaczej jakaś literka umknie i będzie trzeba dawać jeszcze raz bo przecież tamto nie działa. Ot, taki pomysł jak forum powinno wyglądać żeby było jeszcze bardziej po waszemu.

0

Gościu miły, gościu drogi...

  1. Piszę, że nie wiem jak się do tego(tego konkretnego zagadnienia) zabrać.

  2. Nie insynuuj, że kłamię - to jest poważne oskarżenie i w niektórych kręgach można za takie rzeczy dostać w zęby.

  3. Odpowiadam od razu bo chcę żeby przedmówca wiedział, że nie rozumiem. Bo nie zrozumiałem gdzie tą poradę zastosować.

  4. Twoją "typową" metodę stosuję od soboty, niestety gdy człowiek nie za bardzo wie czego szukać efekty są marne. Nie było to dla mnie problemem. Na forum napisałem prośbę o pomoc tylko dlatego, że kilka dni temu problem dla mnie "nie do przeskoczenia" udało się z pomocą pewnego forumowicza rozwiązać w 10 minut. Zakładałem, że po to jest forum.

  5. Jeżeli chcę coś zrozumieć to nie tylko MYŚLĘ, ale też CZYTAM i PYTAM. Analizując forum 4programmers.net doszedłem do wniosku, że to właściwe miejsce do zadawania pytań. Na forum jestem zarejestrowany od 25 kwietnia 2011 roku, a zaglądam tutaj gdzieś od 2008 - nie lecę więc płakać na forum z każdą pierdołą jak twierdzisz.

Myślę, że metoda "Ja niestety stawiam zrozumienie problemu nad jego rozwiązaniem." w twoim wykonaniu jest beznadziejna.
Nie masz raczej talentu pedagogicznego a twój pierwszy post w tym wątku tego dobitnie dowodzi.

Dla porównania dam ci przykład z innej dziedziny:
Chcesz wydrukować sobie wizytówki w internetowej drukarni, wysyłasz im projekt, a oni jak te barany cały czas odpisują Ci, że miało być 4+0, w euroscale coated i bez trimboxu. Zrozumiałeś? Przecież jasno Ci odpisali

1

Gościu miły, gościu drogi...

gościem to jesteś raczej ty, bo ja tutaj jestem od dawna. Natomiast ty masz dwa wątki, osiem postów i jesteś 'starym wyjadaczem'? Super!

  1. Piszę, że nie wiem jak się do tego(tego konkretnego zagadnienia) zabrać.

Możesz pisać co chcesz. Ja się nie czepiam twojego pytania samego w sobie, wykazałeś się tam próbą znalezienia czegoś, mimo że błędnie. Natomiast nie umiesz analizować odpowiedzi i wyciągać z nich wniosków. Zamiast tego od razu odpowiadasz że 'nie działa'.

  1. Nie insynuuj, że kłamię - to jest poważne oskarżenie i w niektórych kręgach można za takie rzeczy dostać w zęby.

Czy ty mi grozisz? Powiedziałem że kłamiesz i nie mam zamiaru się z tego wycofać. A twoje pierniczenie jest co najmniej bezcelowe.

  1. Odpowiadam od razu bo chcę żeby przedmówca wiedział, że nie rozumiem. Bo nie zrozumiałem gdzie tą poradę zastosować.

W ciągu 15 minut skończyły ci się pomysły? Zdążyłeś użyć googla TBrain i poeksperymentować? Śmiem wątpić.

  1. Twoją "typową" metodę stosuję od soboty, niestety gdy człowiek nie za bardzo wie czego szukać efekty są marne. Nie było to dla mnie problemem. Na forum napisałem prośbę o pomoc tylko dlatego, że kilka dni temu problem dla mnie "nie do przeskoczenia" udało się z pomocą pewnego forumowicza rozwiązać w 10 minut. Zakładałem, że po to jest forum.

Naucz się czytać to co piszę, bo widać masz z tym duży problem. Napisałem że nie stosujesz tego na odpowiedziach. Odpowiedź ma dawać poszlaki do rozwiązania problemu, nie gotowca który wkleisz.
Skoro chcesz problem rozwiązać jak najszybciej to zlecaj napisanie programu za siebie, bo nauka programowania nie jest szybka i łatwa.

  1. Jeżeli chcę coś zrozumieć to nie tylko MYŚLĘ, ale też CZYTAM i PYTAM. Analizując forum 4programmers.net doszedłem do wniosku, że to właściwe miejsce do zadawania pytań. Na forum jestem zarejestrowany od 25 kwietnia 2011 roku, a zaglądam tutaj gdzieś od 2008 - nie lecę więc płakać na forum z każdą pierdołą jak twierdzisz.

Właśnie lecisz, tylko że ty dalej nie rozumiesz tego, co się do ciebie pisać. Zamiast analizować odpowiedź od razu odpisujesz że nie działa, ale to że nie działa wynika tylko z twojej głupoty i nieumiejętności czytania odpowiedzi. Widać to wcześniej i teraz.
Możesz sobie pierniczyć od kiedy tu zaglądasz, natomiast mało kogo to interesuje. Jesteś NEWBIE i masz poniżej 10 postów, więc to ty dla mnie jesteś gościem, mój drogi.

Myślę, że metoda "Ja niestety stawiam zrozumienie problemu nad jego rozwiązaniem." w twoim wykonaniu jest beznadziejna.
Nie masz raczej talentu pedagogicznego a twój pierwszy post w tym wątku tego dobitnie dowodzi.

Myśleć możesz co chcesz, mało mnie obchodzi zdanie jakiegoś NEWBIE (koniecznie dużymi literami). Wiem, że początkującemu jest na rękę wkleić działające rozwiązanie, co pięknie widać. Gdzieś było, że początkujący oczekują że wrzucą wymagania na forum i otrzymania rozwiązania. Czy czegoś się nauczą? Rofl.
Możesz sobie uważać co chcesz, natomiast gdy ja uczę kogoś podstaw programowania to zawsze każę mu pisać programy, do których nie wnikam, tylko podpowiadam. O ile wiem że początkowo się nikomu to nie podoba, bo jest się rzucanym na głęboką wodę, to po paru programach wie się już jak co działa. I przekłada się to również na dobre wyniki osób które się ze mną uczyły programować.
Wolę być wymagającym niż milusim.

Dla porównania dam ci przykład z innej dziedziny:
Chcesz wydrukować sobie wizytówki w internetowej drukarni, wysyłasz im projekt, a oni jak te barany cały czas odpisują Ci, że miało być 4+0, w euroscale coated i bez trimboxu. Zrozumiałeś? Przecież jasno Ci odpisali

Gdyby mi się chciało to bym zrozumiał, google mam w przeciwieństwie do ciebie. Ale dla ciebie to by był powód do pytania co to jest X, Y i Z? No przecież... polecę www.google.pl . Zresztą, ja w przeciwieństwie rozróżniam przypadek gdy ktoś mi płaci. Wtedy możesz też sobie wymagać tłumaczenia itd.

0

Płaci powiadasz? Na ile wyceniasz swoją światłą poradę?

0
maniutek20 napisał(a):

Płaci powiadasz? Na ile wyceniasz swoją światłą poradę?

Mam ciekawsze rzeczy do roboty niż rozmowa z NEWBIE który sądzi że zna się na wszystkim bardziej niż ja, nazywa mnie gościem mimo że gościem to jest on i grozi mi wybiciem zębów. Pozdrawiam :D

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