Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Memo1->Lines и переменные 
:(
    Опции темы
Vyacheslav
Дата 4.8.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Вы часто видели последний раз букву Ё ё. А маленкие просто отсчитываются по порядку. Остается отметить, что предложенный Вам к С++ отношения не имеет (это чистый С) smile
А использование continue в блоке if-else выглядит весьма любопытно :масло-масленное



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
codelord
Дата 4.8.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Цитата(Vyacheslav @ 4.8.2005, 12:11)
А использование continue в блоке if-else выглядит весьма любопытно :масло-масленное

Ладушки, я решил все-таки протестировать (свой и свой smile )
Каждая функция вызывалась 20 раз.
48:14:927-48:24:821 (9 sec, 894 msec ) с continue
48:24:821-48:35:26 (10 sec 493 msec) без continue

вот и масло-масляное, и это логично.

забыл написать текст размером 572 кб.

Это сообщение отредактировал(а) codelord - 4.8.2005, 13:08


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Vyacheslav
Дата 4.8.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Ну все приходится разъяснять smile
Нет смысла использовать одновременно continue и else.
Тогда уж
Код

if (...) { ... continue; }
/*else*/ if (...) { ... continue; }
... 



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.Anderson
Дата 4.8.2005, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



codelord, файл скачался, только в нем одни квадратики. И Word его тож квадратиками показывает.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
codelord
Дата 4.8.2005, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Vyacheslav интересно чем ты объяснишь бoльшее быстродействие??
на мой взгляд continue отправляет компилятор считывать следующий символ а не заглядвать
- что же идет после блока if-else if. и только после этого отправляться туда, куда я его отправляю раньше.

Чем же объяснишь это ты?
Цитата(Vyacheslav @ 4.8.2005, 13:28)
Нет смысла использовать одновременно continue и else.

опять таки на мой взгляд есть.
Тем не менее хочу услышать ответ, откуда взялось лишее быстродействие?

Добавлено @ 13:47
Цитата(sim7 @ 4.8.2005, 13:37)
codelord, файл скачался, только в нем одни квадратики. И Word его тож квадратиками показывает

там не могут быть одни квадратики, там все сиволы от 0 до 255, какие -то невидимые символы вот
они и квадратики и пустоты, но там еще есть русские буквы и английские буквы и символы и т.д.
ты скролом то вниз поработай smile.
или создай сам вот таким кодом.
Код

FILE *out;
out=fopen("c:\\new.txt","wb");
int c=0;
for(c=0;c<=255;c++)
        {
        fprintf(out,"%c,%d \n",c,c);
        }
fclose(out);



--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
codelord
Дата 4.8.2005, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Vyacheslav Оказался Вы Оказались Правы smile. по поводу "тогда уж".
конструкция ниже, оказалась на 16% быстрее нежели первый вариант.
Код

FILE *in, *out;
in=fopen("c:\\test.txt","rb");
out=fopen("c:\\new.txt","wb");
int c=0;
while ((c=getc(in))!=EOF)
        {
        if(c>=192 && c<= 197) {c-=191; fprintf(out,"%d,",c); continue; }
        if(c>=198 && c<= 223) {c-=190; fprintf(out,"%d,",c); continue; }
        if(c>=224 && c<= 229) {c-=223; fprintf(out,"%d,",c); continue; }
        if(c>=230 && c<= 255) {c-=222; fprintf(out,"%d,",c); continue; }
        if(c==184) {c=7; fprintf(out,"%d,",c); continue;}
        if(c==168) {c=7; fprintf(out,"%d,",c); continue;}
        putc(c,out);
        }
fclose(in);
fclose(out);



--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
codelord
Дата 4.8.2005, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Цитата(sim7 @ 4.8.2005, 13:37)
codelord, файл скачался, только в нем одни квадратики. И Word его тож квадратиками показывает.

ты бы нормальными редакторами пользовался smile хотябы
таким.
http://www.astonshell.ru/bred3/

файл я переделал (если тебе он еще нужен )адаптировав его под блокнот:

Это сообщение отредактировал(а) codelord - 4.8.2005, 15:25

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  new.zip 0,86 Kb


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
codelord
Дата 4.8.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



sim7 ты бы ответил ради приличия smile.
У тебя там все нормально?.


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Void
Дата 4.8.2005, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



Есть способ определить, является ли буква символом кириллицы и не закладываясь на магические числа и определенную кодировку - с помощью локалей C++.
Код
std::locale ru_loc("russian_Russia");
std::locale c_loc("C");
...
char c;
...
if (std::isalpha(c, ru_loc) && !std::isalpha(c, c_loc)) { // исключаем латинницу
    c = std::tolower(c, ru_loc); // переводим в нижний регистр
    // чего-то делаем с русской буквой
} else {
    // ну нет, так нет...
}

А вот определить однозначно порядковый номер буквы в алфавите так просто уже не получится. Локаль можно использовать как функтор для сравнения строк => следовательно можно отсортировать символы в алфавитном порядке. Однако я проверил на VC 7.1 и оказалось, что в полученное таким образом множество попадают специфические символы с закорючками из славянских алфавитов.

Да, и ни слова про быстродействие! Premature optimization is root of сами_знаете_что smile

Это сообщение отредактировал(а) Void - 4.8.2005, 21:21


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
mr.Anderson
Дата 5.8.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



codelord, да нет, не все в порядке. В смысле, ваш-то файл в норме, а вот моя прога - нет. smile У меня почему-то "переводятся" в порядковый номер только "выборочные" символы. Например, первую букву во введенном тексте прога переводит всегда, а остальные - большую часть не преобразует... Почему? Код такой же, как и раньше.
void, ого-го, вот это код. smile Я уже запутался, что там написано у вас. smile Постараюсь сейчас разобраться...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
codelord
Дата 5.8.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Цитата(sim7 @ 5.8.2005, 16:36)
Например, первую букву во введенном тексте прога переводит всегда, а остальные - большую часть не преобразует... Почему? Код такой же, как и раньше.



sim7 это как??. Код который я дал все ведь делает!!!. В чем то проблема,
он у тебя работает?. Только что попробовал, ни одной русской буквы в преобразованном тексте я не нашел.
Все ведь уже сделал smile


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
codelord
Дата 5.8.2005, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Показывай как ты используешь код.


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
mr.Anderson
Дата 5.8.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Один момент. Я его тут случаем стер... smile smile Сейчас восстановлю, а там посмотрим.
Глюки у меня одни с этим кодом. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 6.8.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Вот код (ваш):
Код

#include <vcl.h>
#include <stdio.h>
#include <iostream.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
int operationfile(void)
{
FILE *in, *out;
in=fopen("c:\\test.txt","rb");
out=fopen("c:\\new.txt","wb");
int c=0,h=0;
while ((c=getc(in))!=EOF)
        {
        if(c>=192 && c<= 197) {c-=191; fprintf(out,"%d,",c); continue; h++;}
        if(c>=198 && c<= 223) {c-=190; fprintf(out,"%d,",c); continue; h++;}
        if(c>=224 && c<= 229) {c-=223; fprintf(out,"%d,",c); continue; h++;}
        if(c>=230 && c<= 255) {c-=222; fprintf(out,"%d,",c); continue; h++;}
        if(c==184) {c=7; fprintf(out,"%d,",c); continue; h++;}
        if(c==168) {c=7; fprintf(out,"%d,",c); continue; h++;}
        putc(c,out);
        }
fclose(in);
fclose(out);
if(h==0) MessageBox(NULL,"Не было преобразований!","Ошибка",MB_ICONEXCLAMATION);
return h;
}

Пишет ошибку в линии 25.

К слову, раз уж в тексте используется MessageBox, какие значения кроме MB_ICONEXCLAMATION могут быть?

Это сообщение отредактировал(а) sim7 - 6.8.2005, 18:45


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
codelord
Дата 6.8.2005, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 16
Всего: 39



Цитата(sim7 @ 6.8.2005, 18:44)
Вот код (ваш):

если ты изменил хотя бы одну строку, так писать нельзя.

кто же так пишет:
Код

if(c>=192 && c<= 197) {c-=191; fprintf(out,"%d,",c); continue; h++;}

h++ никогда не сработает!!!
поэтому поменяй местами continue и h++,

Кстати даже при том, что ты напутал, код у меня текст всеравно преобразует,
только пишет ноль преобразований smile

Цитата(sim7 @ 6.8.2005, 18:44)
К слову, раз уж в тексте используется MessageBox, какие значения кроме MB_ICONEXCLAMATION могут быть?

Цитата

Флаг Значение (в скобках даны надписи в русифицированных версиях Windows)
MB_ABORTRETRYIGNORE Кнопки Abort (Стоп), Retry (Повтор) и Ignore (Пропустить).
MB_OK Кнопка OK. Этот флаг принят по умолчанию.
MB_OKCANCEL Кнопки OK и Cancel (Отмена).
MB_RETRYCANCEL Кнопки Retry (Повтор) и Cancel (Отмена).
MB_YESNO Кнопки Yes (Да) и No (Нет).
MB_YESNOCANCEL Кнопки Yes (Да), No (Нет) и Cancel (Отмена).
21 Флаги пиктограмм в диалоговом окне


Флаг Пиктограмма
MB_ICONEXCLAMATION, MB_ICONWARNING Восклицательный знак (замечание, предупреждение).
MB_ICONINFORMATION, MB_ICONASTERISK Буква i в круге (подтверждение).
MB_ICONQUESTION Знак вопроса (ожидание ответа).
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND Знак креста на красном круге (запрет, ошибка).

на будущее
ошибку тоже надо описывать, я же не Экстрасенс smile


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.