• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Работа с Memo и Edit

_Cazalan

Новые
Регистрация
18 Июн 2012
Сообщения
15
Реакции
0
Баллы
0
Работа с Memo и Edit

У меня будет 2 вопроса, но сначала один:)

Имеется едит, в нём адрес файла(допустим C:\Documents and Settings\Администратор\Рабочий стол\123.bmp) для моей программы нужен адрес без 123.bmp. При нажатии на кнопку нада удалить название файла и расширение. Каким способом лучше это сделать?
 
Работаь со словами в мемо я не умею, со строками лучше разбираюсь:)
 
1) Заведите текстовую переменную и присвойте ей значение Edit.text. Затем в цикле отрезайте по одному символу справа до слеша.
2) Используйте свойство файла Path для получения пути к рабочему каталогу, это будет проще и надежнее.
 
Вот тебе готовый простейший текстовый редактор. Накидал по быстрому.
 

Вложения

  • 9.rar
    9.rar
    183.4 KB · Просмотры: 33
1) Заведите текстовую переменную и присвойте ей значение Edit.text. Затем в цикле отрезайте по одному символу справа до слеша.
2) Используйте свойство файла Path для получения пути к рабочему каталогу, это будет проще и надежнее.

ну первое понятненько, а со вторым можно поподробней?
 
и вот в html что бы указать ту папку в которой лежит файл, мы просто пишем слеш и названия файла в этой папке(например /index.html), а в делфи так нельзя? путь файла будет всегда разный.
 
и вот в html что бы указать ту папку в которой лежит файл, мы просто пишем слеш и названия файла в этой папке(например /index.html), а в делфи так нельзя? путь файла будет всегда разный.

в делфи проще будет встроить просто дерево каталогов и все смотреть и выбирать через него.
смотри еще что бы (если будешь писать путь вручную) что бы не было пробелов , иначе делфа не прочитает.
 
в делфи проще будет встроить просто дерево каталогов и все смотреть и выбирать через него.
смотри еще что бы (если будешь писать путь вручную) что бы не было пробелов , иначе делфа не прочитает.

Я узнаю путь к файлу через opendialog. Адрес он записывает в лейбл. Либо в мемо(не сильно сложно будет поменять :)). Надо удалить название и расширение. Я обгуглился уже весь. Может скинешь код?

опа. сейчас я попробую сделать 1 вещь, позже отпишусь:)

опять мысль есть, я сделать не могу из за плохих знаний :)

Ну что, поможешь? Просто на такую простенькую программу не охото тратить больше дня :)

Memo1.Lines.Strings:=Memo1.Lines.Strings-('desktop.ini');

я понимаю что чушь, но лучше придумать не могу:)

Memo1.Text:=Edit1.Text;
Memo1.Text:=StringReplace(Memo1.Text,'desktop.ini','',[rfReplaceAll]);
В Едит1 хранится адрес файла. При нажатии на кнопку, из адреса удаляется desktop.ini, всё нормально. Но мне надо, что бы удалялся не именно desktop.ini, а название файла и расширение.
 
1) вы используя OpenDialog сохраняете адрес какого-то файла в edit1 и там вам надо удалить имя файла?

Код:
procedure TForm1.openClick(Sender: TObject);{Кнопка с помощью которой открываю файл}
begin
OpenDialog1.Execute();
Edit1.Text := OpenDialog1.FileName;
end;

procedure TForm1.cutClick(Sender: TObject);{кнопка обрезки названия файла с расширением}
var sText: string;
var iPosLocal, iPosGlobal: integer;
begin
  sText := Edit1.Text;
  iPosGlobal := 0;
  repeat
    iPosLocal := Pos('\', sText);
    Delete(sText, 1, iPosLocal);
    iPosGlobal := iPosGlobal + iPosLocal;
  until (Pos('\', sText) = 0);

  sText := Edit1.Text;
  Delete(sText, iPosGlobal+1, Length(sText));
  Edit1.Text := sText;
end;
 
Спасибо. Но я с этим уже разобрался:) Кстать помог ваш текстовый редактор :D
Позже напишу второй вопрос. Просто у нас 4 утра, голова на умные мысли не готова :)
 
Ой, редактор не ваш, а Gruvi:)
 
Я рад что он вам пригодился.
 
Ну и ещё с чем я не знаком:) Есть HTML код страницы. Как обрезать с первого слова, до другого слова? Я читал статьи, там про позиции что то говорится. Не затруднит ли вас написать код с объяснением?:)
 
напишите пример, а то что-то не понятно
 
есть очень большой текст. начинается он допусти со слова ахтунг а кончается словом телепузик. мне нужно удалить текст со слова ахтунг до слова телепузик. как это сделать?
 
1) Если это memo то нужно склеить все строки текста.
2) С помощью функции AnsiPos находим первое вхождение первого слова, прибавить к нему длину самого слова(и возможно пробел) и записать все это в переменную типа integer например i_from
3) Найти первое вхождение второго слова строки и записать его в i_for
4) удалить текст с помощью функции delete
 
а если мне надо удалить от предложения до предложения, это прокатит? просто в хтмл коде много одинаковых слов
 
Я всё перепробовал, ничего не выходит. Можете помочь? Для примера могу скинуть хтмл код.
 
а если мне надо удалить от предложения до предложения, это прокатит? просто в хтмл коде много одинаковых слов
Прокатит. В AnsiPos вместо слова добавьте предложение.
 
Назад
Сверху