Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизРабота со строками Найти похожие ветки
← →
Kolega (2004-01-28 11:11) [0]Доброго времени суток МАСТЕРА!
Есть проблема, помогите разобраться:
Есть строка вида
"0;0;0;0;3;32;73;104;114;120;137;145;180;174;168;163;177;182;175;83;86;98;94;93;91;93;"
Как выдернуть из нее цифры и занести в массив типа integer.
Зарание спасибо!
← →
Плохиш_ (2004-01-28 11:15) [1]String + F1
For + F1
TStringList + F1
StrToInt + F1
или может пойдёшь книжки по-читаешь
← →
Тимохов (2004-01-28 11:20) [2]
> String + F1
> For + F1
> TStringList + F1
> StrToInt + F1
>
> или может пойдёшь книжки по-читаешь
Обидется же...
← →
Digitman (2004-01-28 11:22) [3]одно из простых решений :
1. замени в исх.строке все символы ";" на символ #10 (терминирующий символ ";" вообще убери)
2. полученную после замены строку загрузи в св-во Text предварительно созданного объекта класса TStringList
3. В цикле по всем строкам полученного списка для каждой i-й строки списка выполни StrToInt(), результаты записывай в i-е элементы результирующего int-массива
← →
Плохиш_ (2004-01-28 11:25) [4]>Тимохов © (28.01.04 11:20) [2]
Его проблемы ;-)
>Digitman © (28.01.04 11:22) [3]
А первый пункт зачем?
← →
хз (2004-01-28 11:31) [5]> А первый пункт зачем?
Чтобы перевод строк был.
← →
Sandman25 (2004-01-28 11:32) [6]Люди, Вы зачем ему TStringList советуете? Вот так и делают из начинающих тех, кто потом спрашивает, почему программа медленно загружает 10-мегабайтный файл в Memo. Когда все, что нужно, - всего лишь удалить пару строчек из файла...
Только через парсинг строки!
← →
Тимохов (2004-01-28 11:33) [7]
> Только через парсинг строки!
Вы зчем ему такие умные слова советуете - объяснить же придется, что это... :)))
← →
хз (2004-01-28 11:36) [8]> Только через парсинг строки!
Какой парсинг строки? Он и через StringList-то не додумался сделать!
← →
Digitman (2004-01-28 11:36) [9]
> Плохиш_ (28.01.04 11:25) [4]
When reading Text, the strings in the list will be separated by carriage return, line feed pairs. If any of the strings in the list contain a carriage return and line feed pair, the resulting value of Text will appear to contain more strings than is indicated by the Count property.
When setting Text, the value will be parsed by separating into substrings whenever a carriage return or linefeed is encountered. (The two do not need to form pairs).
If the strings in the list contain carriage return or linefeed characters, a less ambiguous format for the strings is available through the CommaText property.
← →
alex_*** (2004-01-28 11:48) [10]
[6]->медленно загружает 10-мегабайтный файл в Memo
неясно как связан TStringList c TMemo.
Парсинг: зачем самому делать работу, которую уже сделали в TStrings. Только если для самоообразования.
← →
Плохиш_ (2004-01-28 11:49) [11]>Digitman © (28.01.04 11:36) [9]
x.Delimiter := ";"
x.DelimitedText := mysuperstring;
← →
Плохиш_ (2004-01-28 11:51) [12]или в D6 Delimiter нету? Тогда беру свои слова обратно?
PS. Не надо больше справку цитировать. Модератору не понравиться ;-)
← →
хз (2004-01-28 11:52) [13]> PS. Не надо больше справку цитировать. Модератору не
> понравиться ;-)
А ты за модератора-то не говори... ;-)
← →
Sandman25 (2004-01-28 11:53) [14]const
ElementCount = 100;
type
TIntegerArray = array[0..ElementCount-1] of integer;
var
IntegerArray: TIntegerArray;
function ConvertStringToArray(const AString: string;
var IntegerArray: TIntegerArray; Delimiter: char = ";"): integer;
// возвращает число элементов
var
StartIndex, Index: integer;
begin
Result := Low(IntegerArray);
StartIndex := 1;
for Index := 1 to Length(AString) do
begin
if AString[Index] = Delimiter then
begin
// next word
IntegerArray[Result] :=
StrToInt(
copy(AString, StartIndex, Index - StartIndex)
);
inc(Result);
StartIndex := Index + 1;
end;
end;
Result := Result - Low(IntegerArray);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ConvertStringToArray(
"0;0;0;0;3;32;73;104;114;120;137;145;180;174;",
IntegerArray);
end;
← →
Sandman25 (2004-01-28 11:54) [15][10] alex_*** © (28.01.04 11:48)
У Memo есть Lines, который является наследником TStrings, являющимся предком TStringList. И, действительно, был похожий вопрос на форуме, я не фантазировал :)
← →
alex_*** (2004-01-28 12:13) [16]ну мало ли в каких компонентах есть TStrings. Чтож теперь TStringList с опаской пользовать? Вчера или позавчера здесь был любитель прогресс 13000 раз обновлять через ProcessMessages.
Кто хочет на свою голову проблем найти - найдет.
← →
Sandman25 (2004-01-28 12:17) [17][16] alex_*** © (28.01.04 12:13)
Зачем здесь TStringList?
← →
alex_*** (2004-01-28 12:20) [18]для примера. Начали же с того что парсинг через TStringList предлагали.
← →
Sandman25 (2004-01-28 12:24) [19][18] alex_*** © (28.01.04 12:20)
Ну так я именно против этого и восстал. Не стоило советовать TStringList.
Сначала потакают "кнопкокидателям", а потом удивляются, почему они не хотят и не могут "расти над собой".
← →
Плохиш (2004-01-28 12:27) [20]Автор уже всё понял/сделал, а "горячии эстонские парни" всё ругаются :-))))
← →
Sandman25 (2004-01-28 12:28) [21][20] Плохиш (28.01.04 12:27)
За автором придут другие, и спросят нечто похожее.
← →
Плохиш (2004-01-28 12:28) [22]PS. Анкета "Плохиш_" как интересно :-))
← →
Плохиш (2004-01-28 12:30) [23]
> Sandman25 © (28.01.04 12:28) [21]
> [20] Плохиш (28.01.04 12:27)
>
> За автором придут другие, и спросят нечто похожее.
Они в любом случае придут
← →
Sandman25 (2004-01-28 12:32) [24][23] Плохиш (28.01.04 12:30)
И получат тот же ответ? :)
ЗЫ. А, я понял. Такими ответами мы уменьшаем себе потенциальную конкуренцию в будущем :)
← →
Anatoly Podgoretsky (2004-01-28 12:34) [25]Плохиш (28.01.04 12:27) [20]
Не ругаются, а проводят воспитательную работу.
← →
Плохиш (2004-01-28 12:36) [26]>Anatoly Podgoretsky © (28.01.04 12:34) [25]
Друг друга воспитывают :-))
← →
kolega (2004-01-28 13:16) [27]Извените за откровенно тупой вопрос, но я в этом деле только начинающий.
Все получилось.
СПАСИБО ВСЕМ!!!
← →
Sandman25 (2004-01-28 13:21) [28][27] kolega © (28.01.04 13:16)
Вопрос не тупой, а вполне нормальный.
← →
Anatoly Podgoretsky (2004-01-28 13:52) [29]kolega © (28.01.04 13:16) [27]
Хм, если благодаришь, то не мешает указхывать каким именно путем воспользовался, это поможет другим.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.025 c