Опять эти строки....

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Опять эти строки....

Сообщение DirectXManiac » 03.08.2006 (Чт) 11:52

Вот не знаю как сделать такое... Есть строка вида:
"C:\media\pak0.pkg\tex.jpg
Мне нужно узнать есть ли в этой строке какой-нить элемент с .pkg на конце(т.е. это файл а не папка) и найти то что за ним т.е. имя файла...
pak0.pkg в данном случае это пакетный файл, а tex.jpg это файл который нужно из него заэкстрактить если таковой имееться...
Искал в посике - не нашёл
#define ROFL 0xDDDD

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 03.08.2006 (Чт) 12:00

Код: Выделить всё
arr=split(s,"\")
if right(arr(ubound(arr)-1),3)="pkg" then
debug.print arr(ubound(arr))
end if

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 03.08.2006 (Чт) 13:18

Спасибо! Проверю...
#define ROFL 0xDDDD

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.08.2006 (Чт) 13:31

Лучше InStrRev.
Lasciate ogni speranza, voi ch'entrate.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 03.08.2006 (Чт) 13:39

alibek
Можно подробнее... Я в строках ни бум-бум :lol:
#define ROFL 0xDDDD

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.08.2006 (Чт) 14:07

FileExt = ".pkg"
P = InStrRev(FileName, FileExt)
If P > 0 Then
SubFile = Mid$(FileName, P + Len(FileExt))
FileName = Left$(FileName, P)
End If
MsgBox FileName & " => " & SubFile
Lasciate ogni speranza, voi ch'entrate.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 03.08.2006 (Чт) 14:13

Алибек, а код в теги заключить? :wink:
А я все практикую лечение травами...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 03.08.2006 (Чт) 14:15

[offtop]

Twister, [year]2006[/year]

:P

[/offtop]

UPD: чорт, не успел!!! :lol:
Быть... или не быть. Вот. В чём вопрос?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.08.2006 (Чт) 14:25

Старею... Склероз...
Lasciate ogni speranza, voi ch'entrate.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 04.08.2006 (Пт) 9:26

Konst_One, если строка будет такой "C:\media\pak0.pkg\folder\tex.jpg" то твой код не сработает. Вот такой вариант будет работать:

Код: Выделить всё
S = "C:\media\pak0.pkg\tex.jpg"
Arr = Split(S & "\", ".pkg\", 2, vbTextCompare)
Result = Mid$(Arr(1), 1, Len(Arr(1)) - 1)
Программисты не глючат - глючат компиляторы...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.08.2006 (Пт) 10:23

А если строка будет такой: "C:\media.pkg\pak0.pkg\folder.pkg\tex.pkg" :?:
Отгадайте, где здесь расширение папки, где расширение pak-файла, а где путь внутри него.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.08.2006 (Пт) 10:32

Уверен, что вложение пакетных файлов друг в друга не предусмотрено. Поэтому за файл берем последний .pkg
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 04.08.2006 (Пт) 10:47

tyomitch писал(а):А если строка будет такой: "C:\media.pkg\pak0.pkg\folder.pkg\tex.pkg" :?:
Отгадайте, где здесь расширение папки, где расширение pak-файла, а где путь внутри него.

Как только ты объяснишь, как по имени отличить папку от файла, так сразу же скажу :)
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.08.2006 (Пт) 10:53

Antonariy, в паке может быть папка с названием folder.pak
А может быть даже файл с таким названием.

alibek, я как раз пытаюсь объяснить, что DirectXManiac взялся за заведомо неразрешимую задачу.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.08.2006 (Пт) 11:13

Я не сомневаюсь в том, что может. Я сомневаюсь в том, что будет.
alibek, я как раз пытаюсь объяснить, что DirectXManiac взялся за заведомо неразрешимую задачу.
Пфф... Что же в ней неразрешимого? Что есть файл, а что папка можно проверить, скормив путь до нее fso.File/FolderExists. А в pkg наверняка есть метка о том, что в нем за путь ".pkg/" - файл или папка.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 04.08.2006 (Пт) 11:24

tyomitch писал(а):alibek, я как раз пытаюсь объяснить, что DirectXManiac взялся за заведомо неразрешимую задачу.

... в общем случае. В частном она вполне разрешима.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.08.2006 (Пт) 11:28

Ааа... Темыч занимается любимым делом - выпасом сферических коней в вакууме :D
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.08.2006 (Пт) 12:22

Antonariy писал(а):
alibek, я как раз пытаюсь объяснить, что DirectXManiac взялся за заведомо неразрешимую задачу.
Пфф... Что же в ней неразрешимого? Что есть файл, а что папка можно проверить, скормив путь до нее fso.File/FolderExists. А в pkg наверняка есть метка о том, что в нем за путь ".pkg/" - файл или папка.

Вот именно такой подход и был бы верным решением поставленной задачи.
Обращаю внимание, что здесь анализируется не строка сама по себе, а её соотношение со структурой файлов на диске и внутри пака.
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 04.08.2006 (Пт) 18:08

Спасибо! Всё решилось... tyomitch
Как быть с такими путями?
#define ROFL 0xDDDD

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.08.2006 (Пт) 18:14

Как сказал Antonariy.
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 04.08.2006 (Пт) 23:41

:oops: Сори! Недосмотрел!
#define ROFL 0xDDDD


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 34

    TopList