Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: CL | DM;

Вниз

поиск в блакноте   Найти похожие ветки 

 
naraki   (2005-08-20 02:11) [0]

друзя,нужен помощь!
нужно написать прогу делаюший следуйшие:
на ComboBox пишите имя школьника, и прога ишет это имя среди всех имен которые заране написаны на файле под именем name.txt. если найдет то при щелчке пусть загружет инфо с файла tima.txt


 
Defunct ©   (2005-08-20 02:25) [1]

naraki   (20.08.05 02:11)  

:)
ну и что предлагаешь взамен?


 
DrPass ©   (2005-08-20 02:45) [2]


> naraki   (20.08.05 02:11)  

Что именно тебе непонялно?

> Defunct ©   (20.08.05 02:25) [1]

Меньше $1000 не соглашайся


 
naraki   (2005-08-20 14:11) [3]

взамен я вам напишу это на VB :)
я не разбераюсь в Delphi, мне сказали что на этом форуме мне смогут помочь, с этой надеждой я и пришол сюда.


 
DrPass ©   (2005-08-20 14:47) [4]

На форуме помочь могут. Но нужно хотя бы рассказать, что именно не получается - и тебе подскажут, как это сделать. А уже делать ты будешь сам, уж извини. Просьбы вроде "напишите мне программу, которая бы ..." в лучшем случае просто игнорируются.


 
Eraser ©   (2005-08-20 15:02) [5]

naraki   (20.08.05 02:11)
взамен я вам напишу это на VB :)


Тоже в блакноте? )


 
KilkennyCat ©   (2005-08-20 15:41) [6]

я могу разъяснить эту задачу, только вот не понимаю: если Вы можете реализовать это на VB, то что непонятного в реализации в Delphi?


 
Defunct ©   (2005-08-20 16:53) [7]

> взамен я вам напишу это на VB :)

Согласен ;>
Постараюсь к вечеру сделать.


 
Defunct ©   (2005-08-20 18:46) [8]

Вот и обещанная программка:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

const
  fnNames = "name.txt";
  fnInfo  = "tima.txt";

type

 TForm1 = class(TForm)
   ComboBox1: TComboBox;
   Label1: TLabel;
   Memo1: TMemo;
   Label2: TLabel;
   procedure FormCreate(Sender: TObject);
   procedure ComboBox1Change(Sender: TObject);
 public
   procedure  LoadInfoForName(const AName : String );
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

const NL = #13+#10;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.AutoDropDown := True;

  if FileExists( fnNames ) then
     ComboBox1.Items.LoadFromFile("name.txt")
{$ifndef debug}
  else
     begin
        ShowMessage(
          "не удалось найти файл с именами: "+fnNames+NL +
          "программа будет закрыта" );
        Halt( 0 )
     end
{$endif}
end;

procedure TForm1.LoadInfoForName;
var
 F : TextFile;
 S : String;
begin
 Memo1.Lines.Clear;
 if not FileExists( fnInfo ) then
 begin
    Memo1.Lines.Text := "нет файла с информацией";
    exit
 end;

 AssignFile( F, fnInfo );
 Reset( F );
 try
   while not Eof(F) do
   begin
      ReadLn( F, S);
      if LowerCase(S) = AName then // считываем информацию в memo
      begin
         while (not Eof(F)) and (S <> "") do
         begin
            ReadLn(F, S);
            Memo1.Lines.Add( S )
         end;
         exit;
      end;
   end;
 finally
   CloseFile( F );
 end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  i : integer;
begin
  with TComboBox( Sender ) do
  begin
     for i := 0 to Items.Count - 1 do
     if LowerCase(Text) =  LowerCase(Items.Strings[i]) then
     begin
        LoadInfoForName( LowerCase(Text) );
        break
     end;
  end;
end;

end.


Dfm к ней (unit1.dfm):

object Form1: TForm1
 Left = 325
 Top = 322
 BorderStyle = bsDialog
 Caption = "Form1"
 ClientHeight = 390
 ClientWidth = 476
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "MS Sans Serif"
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object Label1: TLabel
   Left = 16
   Top = 8
   Width = 25
   Height = 13
   Caption = "Имя:"
 end
 object Label2: TLabel
   Left = 16
   Top = 64
   Width = 69
   Height = 13
   Caption = "Информация:"
 end
 object ComboBox1: TComboBox
   Left = 16
   Top = 24
   Width = 177
   Height = 21
   ItemHeight = 13
   TabOrder = 0
   OnChange = ComboBox1Change
 end
 object Memo1: TMemo
   Left = 16
   Top = 80
   Width = 449
   Height = 297
   Lines.Strings = (
     "Memo1")
   TabOrder = 1
 end
end


 
Defunct ©   (2005-08-20 18:48) [9]

А это пример файлов с которыми программа работает:

name.txt:
Шевченко Игорь
Зотов Юрий
Петров Петр
Иванов Андрей
Сидоров Иван
Пупкин Василий


tima.txt:
Шевченко Игорь
Дата рождения: 11.09.1961 знак зодиака: Дева
Город: Москва
Пол: Мужской
Образование: высшее
Увлечения / хобби
Программирование :)
Интересное о себе

Зотов Юрий
Дата рождения: 24.06.1954 знак зодиака: Рак
Город: Москва
Пол: Мужской
Образование: высшее

Петров Петр
Дата рождения: 27.12.1994 знак зодиака: Козерог
Город: Москва
Пол: Мужской
Образование: нет образования

Иванов Андрей
нет данных

Сидоров Иван
лениво выдумывать

Пупкин Василий
Народный герой


 
KilkennyCat ©   (2005-08-20 18:50) [10]

школьники :)


 
Defunct ©   (2005-08-20 19:02) [11]

эх.. в такой простой программе допустил пару ошибок.. ;>

Вместо всех LowerCase поставьте AnsiLowerCase !

и в строке
ComboBox1.Items.LoadFromFile("name.txt")
должно быть:
ComboBox1.Items.LoadFromFile( fnNames )

Жду обещанного варианта на VB ;)


 
Defunct ©   (2005-08-20 20:19) [12]

KilkennyCat ©   (20.08.05 18:50) [10]

Двоечники :)


 
naraki   (2005-08-21 01:21) [13]

спасибо большое!
а вот тебе исходник VB,как обешал :)

Private Sub Combo1_Click()
 Dim sItem As String
Text1.Text = ""
   
   sItem = (Combo1.List(Combo1.ListIndex))
   OpenReadFile (sItem)
End Sub

Private Sub OpenReadFile(ByVal lFile As String)
 On Error GoTo Errorhandler
   Dim sStr, globalSTR As String
       Open App.Path & "\" & lFile & ".txt" For Input As #1
           Do While Not EOF(1)
               Line Input #1, sStr
              Text1.Text = Text1.Text & sStr
           Loop
        Close (1)
  Exit Sub
Errorhandler:
   MsgBox "???????? ? ?????????? ???? ?????", vbCritical, "????????"
   Exit Sub
End Sub

Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
    SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, 1, 0
End Sub

Private Sub Form_Load()
Dim letter As String
Open App.Path & "\name.txt" For Input As #1
Do While Not EOF(1)
   Line Input #1, letter
   Combo1.AddItem letter
Loop
Close
   Combo1.Text = ""
   "Flag = False
End Sub


 
KilkennyCat ©   (2005-08-21 01:36) [14]

Шахматы? :)


 
naraki   (2005-08-21 02:20) [15]

KilkennyCat
иди научись уважать других, не стоит писать тут всякую болтавню!



Страницы: 1 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.03 c
9-1115537049
Kolan
2005-05-08 11:24
2005.10.02
Подскажите как найти корни характеристического уравнения


2-1124882589
Dimash
2005-08-24 15:23
2005.10.02
Таблица


1-1126549999
VadimX
2005-09-12 22:33
2005.10.02
RECV и TMemoryStream


2-1124460408
serg10
2005-08-19 18:06
2005.10.02
triggers


1-1126636918
TStas
2005-09-13 22:41
2005.10.02
Перехват сообщения