Намерете конкретен знак в поле и го заменете с фраза

От няколко часа търся отговор на този въпрос в интернет и не мога да намеря нищо. Моят опит с FoxPro е доста ограничен. Това вероятно ще бъдат 2 въпроса в един.

Първи въпрос: Имам списък с елементи и някои от тези елементи може да съдържат запетая, което не е разрешено в програмата, към която прехвърлям данните.

По принцип имам нужда от изявление като това:

REPLACE ALL Field1 with STRTRAN(field1, "," , "<break time='250ms' />"

Дали нещо подобно ще постигне това, от което се нуждая?

Втори въпрос: Имам 5 отделни полета, от които се нуждая от данните, за да бъдат преместени в ново поле. Нещо като това.

Поле 1: октомври Поле 2: 21 Поле 3: 2013 Поле 4: 5:00 Поле 5: следобед

FinalField Благодарим ви за имейла, срещата ви е насрочена за [Field1] [Field2] [Field3] в [Field4] [Field5].

Това ще бъде за хиляди записи, така че бих искал да формулирам изявление, което да ги замени всички наведнъж.

REPLACE ALL FinalField with STRTRAN(

След това не съм сигурен какъв формат трябва да бъде в скобите, за да заменя правилно полето с това, което ми трябва. Благодаря ви за помощта предварително.


person Lordv8r    schedule 11.01.2013    source източник


Отговори (2)


Първи въпрос: Това, което сте написали, ще замени всяко появяване на запетая с "‹break time='250ms' /›". Не съм сигурен, че това е, което преследвате. За просто премахване на всички запетаи:

ЗАМЕНЕТЕ ВСИЧКИ поле1 СЪС STRTRAN(поле1, [,], [])

ще го направя. Обичам да използвам символите [ ] като разделители на низове, когато работя със запетаи, кавички и т.н. - за яснота.

Разгледайте функцията TEXTMERGE() за отговор на втория ви въпрос.

person LAK    schedule 11.01.2013
comment
Благодаря ти за помощта! Имах чувството, че съм прав с горната секция и разгледах функцията TEXTMERGE() и се надявам, че това е решението, от което имах нужда. Отново Благодаря! - person Lordv8r; 12.01.2013

За втория си въпрос можете просто да напишете израз като:

REPLACE ALL FinalField WITH ;
  "Thank you for your email, your appointment is scheduled for " + ;
  ALLTIRIM(Field1) + " " + TRANSFORM(Field2) + ;
  TRANSFORM(Field3) + " at " + ;
  ALLTRIM(Field4) + ALLTRIM(Field5) + "."

Това предполага, че Field1, Field4 и Field5 са знаци, а Field2 и Field3 са числови. Ако това не е така, ще трябва да ги коригирате.

Ако извършвате еднократно експортиране към друго приложение, може да ви е по-лесно да напишете SQL заявка, за да поставите всички данни в желания от вас формат и след това да експортирате курсора, генериран от тази заявка.

person Tamar E. Granor    schedule 11.01.2013
comment
Благодаря за отговора, всъщност използвах това, а не функцията TEXTMERGE(), тъй като това е малко по-лесно за разбиране. - person Lordv8r; 14.01.2013