On-line: Andrey, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1006
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.12.09 00:30. Заголовок: Подскажите как получить месяц из имени файла..


Есть массив файлов типа:
железнодорожный102009.dbf
кировский102009.dbf
ленинский102009.dbf
ленинский52009.dbf
октябрьский102009.dbf
свердловский102009.dbf
советский102009.dbf
центральный012009.dbf
центральный112009.dbf
центральный12009.dbf
центральный52009.dbf
центральный.dbf
советский.dbf


Как выделить месяц из имени файла ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]





Пост N: 75
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 28.12.09 07:39. Заголовок: Не понятен формат за..


Не понятен формат записи даты.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1008
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.12.09 07:49. Заголовок: КСС пишет: Не понят..


КСС пишет:

 цитата:
Не понятен формат записи даты.


Как обычно.... Если было бы одинаково, то не спрашивал бы.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 133
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 28.12.09 07:56. Заголовок: а если что-то типа? ..


а если что-то типа?
function MesFromFile( c ) 
// к примеру, c:="советский052009.dbf"

Local cTmp
cTmp:=c
if at("2009.dbf", cTmp)=0
Return 0
endif
cTmp:=strtran(cTmp, "2009.dbf", "")
if .not.IsDigit(right(cTmp,1))
Return 0
else
if .not.IsDigit(right(cTmp,2))
Return val(right(cTmp,1))
else
Return val(right(cTmp,2))
endif
endif

Return 0


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1009
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.12.09 08:08. Заголовок: gustow пишет: а есл..


gustow пишет:

 цитата:
а если что-то типа?



Спасибо большое за идею !!!
Сделал и на другие года...

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 5
Зарегистрирован: 01.01.10
ссылка на сообщение  Отправлено: 02.01.10 00:03. Заголовок: // Программа ? "..


// Программа

? "month='" + Extract_Month("железнодорожный102009.dbf") + "'"
? "month='" + Extract_Month("кировский102009.dbf") + "'"
? "month='" + Extract_Month("ленинский102009.dbf") + "'"
? "month='" + Extract_Month("ленинский52009.dbf") + "'"
? "month='" + Extract_Month("октябрьский102009.dbf") + "'"
? "month='" + Extract_Month("свердловский102009.dbf") + "'"
? "month='" + Extract_Month("советский102009.dbf") + "'"
? "month='" + Extract_Month("центральный012009.dbf") + "'"
? "month='" + Extract_Month("центральный112009.dbf") + "'"
? "month='" + Extract_Month("центральный12009.dbf") + "'"
? "month='" + Extract_Month("центральный52009.dbf") + "'"
? "month='" + Extract_Month("центральный.dbf") + "'"
? "month='" + Extract_Month("советский.dbf") + "'"
?

FUNCTION Extract_Month(cFile)
LOCAL cTemp, retval := ""
cTemp := Extract_Number(File_Base(cFile))
IF LEN(cTemp) > 4
retval := LEFT(cTemp, LEN(cTemp) - 4)
ENDIF
RETURN (retval)

FUNCTION File_Base(cFile)
LOCAL nPos, cFileBase
DO CASE
CASE (nPos := RAT("\", cFile)) != 0
cFileBase := SUBSTR(cFile, nPos + 1)
CASE (nPos := AT(":", cFile)) != 0
cFileBase := SUBSTR(cFile, nPos + 1)
OTHERWISE
cFileBase := cFile
ENDCASE
IF (nPos := AT(".", cFileBase)) != 0
cFileBase := SUBSTR(cFileBase, 1, nPos - 1)
ENDIF
RETURN (cFileBase)

FUNCTION Extract_Number(lString)
RETURN (Char_Only("0123456789", lString))

FUNCTION Char_Only(cOnly, cStr)
LOCAL retval := "", i, ch
FOR i := 1 TO LEN(cStr)
ch := SUBSTR(cStr, i, 1); IF ch $ cOnly; retval += ch; ENDIF
NEXT
RETURN (retval)

// Результат

month='10'
month='10'
month='10'
month='5'
month='10'
month='10'
month='10'
month='01'
month='11'
month='1'
month='5'
month=''
month=''


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 117
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет