Автор | Сообщение |
|
| |
Пост N: 4843
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.15 17:28. Заголовок: "M" => "C"
Может кто писал такое , не хочется велик изобретать. Нужно просканировать папку(текущую) с DBF файлами. Выяснить в каких их них есть MEMO поля , при чем в одном DBF может быть не одно MEMO поле. И затем MEMO поля преобразовать в тип "C" с длиной 250 (не убив при этом базы) ;)
|
|
|
Новых ответов нет
[см. все]
|
|
|
| постоянный участник
|
Пост N: 637
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.05.15 18:02. Заголовок: была рыба, на подобн..
была рыба, на подобное: lSet := Set( _SET_DELETED, .F. ) aDir := Directory(cPath+"*.dbf") nK := len(aDir) FOR nI := 1 TO nK cFile := aDir[ nI ][1] USE ( cPath + cFile ) NEW ALIAS INP nInp := select() aStru := dbStruct() dbGotop() nM := AScan(aStru, {|x| x[2] == 'M' }) // memo поле есть\нет IF nM > 0 k := len(aStru) FOR i := 1 TO k IF aStru[ i ][2] == 'M' aStru[ i ][2] := 'C' aStru[ i ][3] := 250 ENDIF NEXT ENDIF dbCreate(cPath+'_'+cFile, aStru, 'DBFCDX', .T., 'OUT') DO WHILE ! ( nInp )->( EOF() ) dbAppend() FOR i := 1 TO k FieldPut(i, ( nInp )->( FieldGet(i) )) NEXT IF ( nInp )->( deleted() ); dbDelete() ENDIF ( nInp )->( dbSkip(1) ) ENDDO dbCloseArea() ( nInp )->( dbCloseArea() ) NEXT Set( _SET_DELETED, lSet ) // SET DELETED OFF
|
|
|
|
| постоянный участник
|
Пост N: 4202
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.05.15 18:08. Заголовок: Не писал... Но думаю..
Не писал... Но думаю придётся тебе из базы в базу копировать чтобы данные не потерялись... aStru := dbStruct() nMemo := 0 ; aEval(aStru, {|x,e| nMemo += iif(x[2] == 'M', 1, 0)}) // кол-во МЕМО-полей в БД IF nMemo > 0 DO WHILE ! EOF() FOR i := 1 to len(aStru) IF aStru[ i ][2] == 'M' j := FieldGet(i) // твоя обработка ENDIF NEXT SKIP ENDDO ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 638
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.05.15 18:10. Заголовок: PS. IF nM > ..
PS. IF nM > 0 k := len(aStru) строки поменять местами k := len(aStru) IF nM > 0
|
|
|
|
| |
Пост N: 4844
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.05.15 18:41. Заголовок: SergKis Спасибо , с..
SergKis Спасибо , самое оно. Довел слегка только.
|
|
|
|