我能夠將數據導出到文本文件,但文本文件中的格式不好。例如,當一個字段值有空格時 - 它在文件中包含一個新行。爲什麼在導出到Progress 4GL中的文本文件時,帶空格的字段值包含新行?
樣本數據: 846438828 | 10121803 || HEIN | KATIE | 270 ||卵石
CREEK | DR |||美國| GA | 30605 || 7天| 1 | 2 | 842486060 | 1012 || GUNTER | LEWELL | 230 || MCDUFFIE | DR ||| ATHENS | GA | 30605 | 7065430640 | FRI-SUN | 1 | 2 | 889388948 | 101205 || WEEKS | J D | 183 || MELL | ST ||| ATHENS | GA | 30605 | 7065481437 | SUNONLY | 1 | 2 |
領域streetname 「石子」 CREEK它看起來像報告,但在價值:
卵石
CREEK
爲什麼會出現這種情況?
def var v-copies as inte no-undo.
def var v-phone as char format "x(16)" no-undo.
def var v-loc as char no-undo.
def var v-file as char format "x(30)" no-undo.
def var v-demoid as char format "x(20)" no-undo.
def var v-email as char format "x(30)" no-undo.
def var v-hostname as char format "x(20)" no-undo.
def var v-RouteIDs as char no-undo.
def var v-Product as char no-undo.
def var v-ExDir as char format "x(80)" no-undo.
def var v-LookBack as int no-undo init 90.
{tools/altpubs/audit/var.i}
{tools/altpubs/audit/procedures.i}
def stream sout.
def temp-table tt-demo
field entityid as int format ">>>>>>>>>9"
field answer like DemographicAnswer.Answer.
v-ConfigFile = search(v-ConfigFile).
if v-ConfigFile = ? then do:
message "config file config.csv was not found" view-as alert-box.
RETURN "ERROR".
end.
input from value(v-ConfigFile).
run ReadConfig.
input close.
for each tt-Config where tt-Config.Section = 'local' and
tt-Config.SectionValue <> ?:
v-loc = tt-Config.SectionValue.
case tt-Config.SettingName:
when 'ExchDir' then v-ExDir = tt-Config.SettingValue.
when 'Product' then v-Product = tt-Config.SettingValue.
when 'Routes' then v-RouteIDs = tt-Config.SettingValue.
when 'LookBack' then
do:
v-LookBack = integer(tt-Config.SettingValue) no-error.
if error-status:error then v-LookBack = 90.
end.
end.
end.
v-ExDir = v-Exdir + lc(v-loc) + "/".
file-info:file-name = v-ExDir.
if not(file-info:file-type begins "D") or file-info:file-type = ? then
do:
unix silent makedir value(v-ExDir) && chmod 777 value(v-ExDir).
file-info:file-name = v-ExDir.
end.
assign
v-File = v-ExDir + lc(v-Product) + "Audit" +
string(month(today),"99") + "-" +
string(day(today),"99") + "-" +
substring(string(year(today),"9999"),3) + ".txt".
for each DemographicAnswer where DemographicAnswer.DemographicId = v-RouteIDs
no-lock:
create tt-demo.
assign tt-demo.entityid = int(DemographicAnswer.EntityId)
tt-demo.answer = DemographicAnswer.Answer.
end.
output stream sout to value(v-file).
put stream sout unformatted
"HEADER B2 " string(today) skip.
for each tt-demo,
each Subscription no-lock
where Product = v-product
and SubscriptionID = tt-demo.entityid
and Subscriber = yes
and Getspaper = yes:
find last RouteSubscription of Subscription no-lock no-error.
if available routeSubscription then do:
for each Occupant of Subscription no-lock,
each Address of Subscription no-lock:
find OccupantPhone of Occupant no-lock no-error.
if available OccupantPhone then
v-phone = OccupantPhone.AreaCode + OccupantPhone.Phone.
else
v-phone = "".
find last OccupantEmail of Occupant no-lock no-error.
if available OccupantEmail then
v-email = OccupantEmail.EmailAddress.
else
v-email = "".
case DeliveryScheduleId:
when "MON-FRI" then v-copies = RouteSubscription.Copies[2].
when "FRI-SUN" then v-copies = RouteSubscription.Copies[1].
when "SUNONLY" then v-copies = RouteSubscription.Copies[1].
when "7DAY" then v-copies = RouteSubscription.Copies[1].
when "MON-SAT" then v-copies = RouteSubscription.Copies[2].
when "THUONLY" then v-copies = RouteSubscription.Copies[5].
when "WEDONLY" then v-copies = RouteSubscription.Copies[4].
when "SATSUN" then v-copies = RouteSubscription.Copies[1].
end case.
put stream sout unformatted
tt-demo.Answer "|"
Subscription.SubscriptionId "|"
Subscription.Product "|"
Occupant.LastName "|"
Occupant.FirstName "|"
trim(Address.HouseNumber) "|"
trim(Address.Postdirectional) "|"
trim(Address.StreetName) "|"
trim(Address.StreetSuffixId) "|"
trim(Address.postdirectional) "|"
trim(Address.UnitDesignatorID + trim(Address.UnitNumber)) "|"
Address.CityId "|"
Address.StateId "|"
Address.ZipCode "|"
v-phone "|"
Subscription.DeliveryScheduleId "|"
v-copies "|"
"2" "|"
v-email skip.
end.
end.
end.
put stream sout unformatted
"TRAILER ".
output stream sout close.
你怎麼出口?你可以發佈代碼嗎? – Jensd