powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / FileRead - искажает строки
13 сообщений из 13, страница 1 из 1
FileRead - искажает строки
    #34842849
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Записываю файл в стринговую переменную функцией FileRead.
При разборе данной переменной обнаружил, что часть пробельных символов в строке идущих друг за другом были усечены. т.е строка вида:
Код: plaintext
1.
ДАТА      : &DATADOC&  
превратилась в строку:
Код: plaintext
ДАТА  : &DATADOC&  
(вместо 6 пробелов, осталось два).
Как обойти, что посоветуете?
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34842885
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_new wrote:

> Записываю файл в стринговую переменную функцией FileRead.
> При разборе данной переменной обнаружил, что часть пробельных символов в
> строке идущих друг за другом были усечены.

Чушь собачья. Возражения не принимаются - проверил именно на твоей строке.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34842908
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PB 9.0.3 8546

Давайте попробуем воссоздать все с точностью до мелочей.
Файл прикладываю

string vFile
//открываем файл-шаблон, получаем содержимое
i2 = FileOpen(vpath, StreamMode!, Read!, LockRead!)
if i2=-1 then
MessageBox("Внимание", "Не могу открыть файл - "+vpath)
return;
end if;
FileRead(i2, vFile)
FileClose(i2)
//обрабатываем перменную vFile.
//конвертируем ее
// if OemToCharA(vFile,vFile) = false Then
// messagebox("Ошибка", "Ошибка конвертирования строки")
// return;
// end if;
messagebox("Отладка", vFile)
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34842951
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Long lFile1, lFile2
String sStr

lFile1 = FileOpen('c:\кассовый.txt', LineMode!, Read!)
lFile2 = FileOpen('c:\проверка.txt', LineMode!, Write!)

do while FileRead(lFile1, sStr) >=  0 
	FileWrite(lFile2, sStr)
loop

FileClose(lFile1)
FileClose(lFile2)

c:\>fc кассовый.txt проверка.txt
Сравнение файлов кассовый.txt и ПРОВЕРКА.TXT
FC: различия не найдены
В дальнейшем обсуждении не вижу смысла.
____________________________________
- Гарфилд, мышь!
- Спасибо, я сыт!
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34843016
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, различий нет.
Попробуйте, вывести содержимое переменной sStr на экран (messagebox), или в отладчике выбрать edit variable. Как объясните?
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34843376
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_newДействительно, различий нет.
Попробуйте, вывести содержимое переменной sStr на экран (messagebox), или в отладчике выбрать edit variable. Как объясните?
строка такая-же как в файле. что тут обьяснять?
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34843966
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня несколько отличается(см. вложение) от исходного файла.
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34844022
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как это Вы на месседжбоксе посчитали кол-во пробелов на шрифте с переменной шириной символов?
Замените в строке все пробелы на какой-нибудь "+" и выведите для проверки.
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34844195
pb_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил для части строк.
Видимо проблема с отображением стринговых переменных
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34844220
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb_new wrote:

> Видимо проблема с отображением стринговых переменных

Агащазблин. Стандартный виндовый MessageBox начал неправильно отображать
строки. Даже не смешно...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34844279
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно не смешно
Афтар поставь шрифт моноспейсный (т.е. у которого все буквы по ширине одинаковы, например Courier) и будет тебе счастье, т.к. проблема скорее всего в отображении
2 вариант - на машине стоит схема типа крупный шрифт-мелкий шрифт , глючить будет визуально
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34852883
ziepniekkalns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
poljzujtesj na zdorovje provereno na 100%.perepisyvayet lyubye faily lyubyh razmerov
-----------------------------------------------------------------------------------------

blob ls_buffer
string ls_to,is_pdf_file
integer li_ToFile,li_FromFile, loops
long ll_flen,i
blob b



ls_to ="c:\to_file.pdf" //path+name of destination file

ls_from="c:\from_file.pdf" //path+name of source file

if fileexists(ls_from) then

// Set a wait cursor
SetPointer(HourGlass!)

// open the destination file
li_ToFile = FileOpen ( ls_to, StreamMode!, Write!, LockReadWrite!, Replace! )

// Get the file length, and open the source file
ll_flen = FileLength(ls_from)
li_FromFile = FileOpen(ls_from,StreamMode!, Read!, LockRead!)

// Determine how many times to call FileRead
IF ll_flen > 32765 THEN
IF Mod(ll_flen, 32765) = 0 THEN
loops = ll_flen/32765
ELSE
loops = (ll_flen/32765) + 1
END IF
ELSE
loops = 1
END IF

// Read the file and write new copy of the file
FOR i = 1 to loops
FileRead(li_FromFile, b) //read from source file into buffer
FileWrite(li_ToFile, b) //write from buffer to destinanation file
NEXT
// FileClose returns 1 if it succeeds and -1 if an error occurs. If file# is NULL, FileClose returns NULL.
FileClose(li_FromFile)
FileClose(li_ToFile)

setnull(b) //clear buffer
SetPointer(Arrow!) //back to previous pointer
end if
...
Рейтинг: 0 / 0
FileRead - искажает строки
    #34855398
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziepniekkalnspoljzujtesj na zdorovje provereno na 100%.perepisyvayet lyubye faily lyubyh razmerov
Ты опять пихаешь свою поделку даже там, где она совершенно не к месту?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / FileRead - искажает строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]