Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2007, 16:03   #1
Regloger
Пользователь
 
Регистрация: 15.11.2007
Сообщений: 16
По умолчанию Проблема с записью в файл...(

Приветствую уважаемые форумчане!
Буду очень признателен, если поможете решить одну проблемку… А суть ее в том, что при записи случайных букв английского алфавита в файл иногда получается так что содержимое файла(в котором должны быть буквы) представляет из себя набор квадратов…((( так происходит не всегда… бывает и так что все нормально… но все же хотелось знать причину этой ошибки.
Цитата:
Вот исходник проги:
procedure TForm1.Button1Click(Sender: TObject);
const
// коли-во символов ===> 62
con='qwertyuiopasdfghjklzxcvbnmQWER TYUIOPASDFGHJKLZXCVBNM0123456789';
var
F: Textfile;
y,x: Word;
s: string;

begin
Edit1.SetFocus;
if (Edit1.Text='') then
begin ShowMessage ('Не все входные параметры указаны!'); Exit end;

Memo1.Lines.Clear;
AssignFile(F, '1.txt');
Rewrite(F);
x:= strtoint(edit1.Text);

x:=x-1;

for y:=0 to x do
begin
s:=con[random(63)];
ProgressBar1.Position:=round(y/x*100);
Memo1.Lines.Add(s);

write(F,s);

end;
CloseFile(F);
end;

Цитата:
А вот так выглядит текст при ошибки:
焀猱䡪灺浶䕴䵲步瘴穃お汌穰杅橍潒欲㡃㉔煍潩煔A䙃䭃獏䅈䘷朹歈䍴㉔偙䨷x 㥋塃潳嘴ㅁ歊䑴㉪橰㝉潰慨呐潪婓瑘敲䉹扂兓呚乸楎牴獥晈桏䵶汬䩇稳歒婃䱉䥮 ㉁畈湅敵䡉㕴䡍樵婋䝔景挶㥵敬ㅹ䩉䡹汱唳兺砳剣ひ慘吵㍩摮䅂䑹䤵坺慦㥊䩄祉 潘㉦克漸慷瘀换坴䕔么杏偶匲䩨㉏捣噄獗䵊㍘䍡歨坋愷昀稳䌱樷䵢東呥m䭯扬桉 歯䭲噺佇焳㉨睊潯浭o䍕晏攱牒䝶䉳浙㥷睰祥㝂摵㡃睔䉁夵㥇䱃㤳噚癱牺桖㐰㍥ 刵癊塭硊奄礸焹捓䙙䙎吶㥒獧䩑睘䉓灅牄嘷儱搀㉐䕥ㄵ䰱搸䝯慎乱䕏潑ㅂ䅹摂湅 䭔汖卷敫摅䝴砰䕬䰴瑮杂硷ㄲ村癭兆塆坎单杬䱮慇眷㍺奅䠲偭㡯潅卬剎䕩穯乇漰 塡硪睧䨳䝴匀䍐㍳䙎噒獘㑶㉕歌祁捸偭䠴㥚瑣橮昵瑢奕晕浳吸癐噶䠴啐昵㡱㡔䵤 兹㥥䭢丱䝢ㅪ癡瑮8祡䙥䉪䩵剮祙稶樶ざ呭䱪浸㡑偣剋穡剭䕣慲䤹㍗䅎歭倰䙪朲 睄久搱䠸桋昴捒卂浱剦杙卉偸䭃㕰䱑䥏婙䤳こ煭眶㑚䙨嘵祥㉣㙳㥐扖煱噓呅㕚灪 㥩硩浯祔歶牪に癧敐扨䍲煭奋䱑礀啧䑂䵨坒䡷浈偦瑣倰煍䡈挰䉍琴奨噘扗㍰楅䐵 瑁睗楊祳䑣偑䩬瑮㡋䉤䭭儸婷䅹㍓䍓䑺樱牨v㉺牡瘱桯㑅潭䑵扬ぐ灍䍚灊正洵杤 ㅷM奡䑪佉噅䱡灧㌲桴䨳浵兑㉖㍭O倲㕢倴扆瑵夹樷䡮牅塴㉯䥤卯㝆核栀㥳丷奯 卫汙噺䩴眳㑢浒瑂ㅈ楪临杴户嘰礶樀晋祮睈㡇䩌硉佈究祢噫䥕䡱汔佫啤儴橆䱐呤 穇啁楑噙晋㡑䉘m䤵䕅
Зарание спасибо!
Regloger вне форума Ответить с цитированием
Старый 15.11.2007, 16:14   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

в Memo1 набор символов явно не латынь стоит?
Alex21 вне форума Ответить с цитированием
Старый 15.11.2007, 16:23   #3
Regloger
Пользователь
 
Регистрация: 15.11.2007
Сообщений: 16
По умолчанию

Не совсем понял, при чем тут Memo1 вообще(я его использую для того чтобы видеть какие символы Должны быть в файле… ) но все же закоментил все что касается Memo1 но ошибка все равно возникает… (
Regloger вне форума Ответить с цитированием
Старый 15.11.2007, 16:39   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не совсем понял, при чем тут Memo1
Наверное Алекс имеет вииду его свойство ImeMode.
Что там стоит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2007, 16:43   #5
Regloger
Пользователь
 
Регистрация: 15.11.2007
Сообщений: 16
По умолчанию

imDontCare
Regloger вне форума Ответить с цитированием
Старый 15.11.2007, 16:54   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У меня такой ошибки нет.
И криминала вроде в твоем коде нет...
Ну разве что поменять стратегию генерации случайных букв...
Например писать в файл так Write(f,chr(random(33)+32);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2007, 17:05   #7
Regloger
Пользователь
 
Регистрация: 15.11.2007
Сообщений: 16
По умолчанию

Цитата:
У меня такой ошибки нет.
Так и у меня она не всегда появляется... но появляется) вот например если х(икс) будет равен 1000 то сто пудова будут квадраты, а вот если 1001 до все тип-топ... Почему так? не как не могу понять...(
Regloger вне форума Ответить с цитированием
Старый 15.11.2007, 17:10   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если х(икс) будет равен 1000 то сто пудова будут
квадраты
У меня такого нет. все работает и при 1000 и при 100000
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2007, 17:22   #9
Regloger
Пользователь
 
Регистрация: 15.11.2007
Сообщений: 16
По умолчанию

Вот сейчас прогнал ее с х=1000 и тока с пятого раза нормально все отобразилось... а первые четыре раза (вот так:浒潫㝩䤲獯祡〹㠳I䑄f捤䕘㉉䭖啷䡹G㌳䝪潉䍒瑍啐)... но при этом промелькивают и нормальные буквы... Возник еще один вопрос, а как сделать так чтоб пробелов не было в этом файле? А то бывает, так что в начале, середине или в конце... да еще и не по одному...
Regloger вне форума Ответить с цитированием
Старый 15.11.2007, 17:44   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

По-моему, это просто неотображаемые служебные символы с кодами меньше 32.
Посему нужно внять дельному совету от Стилета...
По поводу генерирования случайных значений.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача с записью |v||v|<<IpShot Паскаль, Turbo Pascal, PascalABC.NET 11 23.08.2008 17:02
Проблема с записью большого файла Rembo Свободное общение 17 17.06.2008 12:47
Проблема с записью в реест eks-s Общие вопросы Delphi 4 02.02.2008 13:42
Истинный объём памяти занимаемый записью, record Мессир Общие вопросы Delphi 35 28.01.2008 08:52
Проблема, не успевает удалится файл Lonix Общие вопросы Delphi 6 07.04.2007 17:32