Страница 1 из 1

старые консоль аппликатион в делфи2005

Добавлено: 25 дек 2006, 22:19
Ramzey
Как откыть проекты созданные в делфи5 (консоль аппликатион) в делфи2005
открываю а там "одни цифры"?

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 04:09
SergeyS
Проект в делфи5 (особенно консоль аппликатион) являются по сути текстовыми файлами с расширением .dpr, следовательно проблем быть не должно (у меня по крайней мере все открывается на ура). Посмотри текстовым редактором свой проект, может там действительно одни цифры :)

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 04:41
Ramzey
не там обычный текст, его можно через буфер обмена перенести, но это не выход блин. как я его не открываю дни цифры:
70726f6772616d20 50726f6a65637433 3b0d0a7b24415050 5459504520434f4e
534f4c457d0d0a75 7365730d0a202053 79735574696c732c 57696e646f77733b
0d0a434f4e53540d 0a2020734e6f726d 61203a2073747269 6e67203d2027c2e2
E5e4e8f2e520edee F0ecf33a20273b0d 0a20207341646453 7472203a20737472
696e67203d202731 202d20e4eee1e0e2 E8f2fc20e7e0efe8 F1fc202030202d20

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 05:22
SergeyS
пришли файл, я попробую его в своём делфи открыть

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 05:50
Ramzey
ну глянь пожалуйста

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 10:12
somewhere
Все твои цифры - это шестнадцатеричное представление текста в файле - переключи режимы просмотра, если это например Lister в Total Commander нажми '1' для переключения в текстовый вид. Ну если не можешь пользоваться просмотрщиком, то

Код: Выделить всё

program Project3;
{$APPTYPE CONSOLE}
uses
  SysUtils,Windows;
CONST
  sNorma : string = 'Введите норму: ';
  sAddStr : string = '1 - добавить запись  0 - конец добавления';
  Shapka : array [1..3] of string =
      ('-----------------------------------------------------------------------------',
       '|   НОМЕР РЕЙСА    | ФАМИЛИЯ ПАССАЖИРА|    ВЕС БАГАЖА    | ПУНКТ НАЗНАЧЕНИЯ |',
       '-----------------------------------------------------------------------------');

  Menu : array [1..3] of string =
      ('1 - вывод по норме'+#9+'2 - сортировать по алфавиту',
       '3 - сортировать по весу'+#9+'4 - сортировать по пункту назначения',
       '0 - выход');

  InputStr : array [1..4] of string =
      ('Введите номер рейса',
       'Введите фамилию пассажира',
       'Введите вес багажа',
       'Введитепункт назначения');

TYPE
  TZapis = array [1..4] of string[18];
  TMyTabl = array [1..100] of TZapis;
VAR
  MyTabl  : TMyTabl;
  i,Item  : byte;
  LenTabl : byte;
  Norma   : integer;
  OutFile : text;

procedure ViewShapka(var f : text);
var
  i : byte;
begin
  for i:=1 to 3 do writeln(f,Shapka[i])
end;

procedure ViewMenu;
var
  i : byte;
begin
  for i:=1 to 3 do writeln(Menu[i])
end;

procedure AddItem;
var
  i,j : byte;
  Zapis : TZapis;
begin
  inc(LenTabl);
  for i:=1 to 4 do
    begin
      writeln(InputStr[i]);
      readln(Zapis[i]);
      while length(Zapis[i])<18 do Zapis[i]:=' '+Zapis[i]
    end;
  for i:=1 to LenTabl do
    if MyTabl[i][3]<Zapis[3] then
      begin
        for j:=LenTabl downto i+1 do MyTabl[j]:=MyTabl[j-1];
        break;
      end;
  MyTabl[i]:=Zapis
end;

procedure ViewItem(var f: text; n : byte);
var
  i : byte;
begin
  for i := 1 to 4 do write(f,'|',MyTabl[n][i]);
  writeln(f,'|');
  writeln(f,Shapka[1])
end;

procedure Sort(Key : byte);
var
  i,j : byte;
  y   : TZapis;
begin
  for i := 2 to LenTabl do
  for j := LenTabl downto i do
  if MyTabl[j-1][Key] > MyTabl[j][Key] then
    begin
      y:=MyTabl[j-1];
      MyTabl[j-1]:=MyTabl[j];
      MyTabl[j]:=y
    end
end;

procedure ViewTabl(var f : text; n : integer);
var
  i     : byte;
  count : byte;
begin
  count:=0;
  ViewShapka(f);
  for i:=1 to LenTabl do
    if (n=-1) or (n < StrToInt(MyTabl[i][3])) then
      begin
        ViewItem(f,i);
        inc(count);
        if count=78 then
          begin
            writeln('Press `Enter` to continue');
            count:=0;
            readln
          end;
      end
    else if n=-1 then break;
end;

BEGIN
  assign(OutFile,'d:\result.txt');
{$I+}
  rewrite(OutFile);
{$I-}
  if IOResult<>0 then
    begin
      writeln('Error create file');
      halt
    end;

  LenTabl:=0;
  Norma:=-1;
  for i:=1 to 3 do CharToOemBuff(@Shapka[i][1],@Shapka[i][1],Length(Shapka[i]));
  for i:=1 to 3 do CharToOemBuff(@Menu[i][1],@Menu[i][1],Length(Menu[i]));
  for i:=1 to 4 do CharToOemBuff(@InputStr[i][1],@InputStr[i][1],Length(InputStr[i]));
  CharToOemBuff(@sAddStr[1],@sAddStr[1],Length(sAddStr));
  CharToOemBuff(@sNorma[1],@sNorma[1],Length(sNorma));

  ViewShapka(output);
  repeat
    AddItem;
    ViewTabl(output,Norma);
    writeln(sAddStr);
    readln(Item);
  until Item<>1;

  ViewTabl(OutFile,Norma);
  close(OutFile);
  
  repeat
    ViewTabl(output,Norma);
    ViewMenu;
    readln(Item);
    if Item=1 then
       begin
         writeln(sNorma);
         readln(Norma);
         Sort(3);
       end
    else
      begin
        Sort(Item);
        Norma:=-1
      end
  until Item=0
END.

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 17:13
Ramzey
Дубль 2
В любом просмотрщике все ОК, ВЕЗДЕ нормально его видно!!!
Как только открываю в делфях2005(только вчера поставил) вместо текста - числа.
Можно перетянуть через буфер обмена, но это не выход.

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 21:23
somewhere
Ну переименуй его в Pas в конце-концов. И почему через буффер не выход - что он уже, не котируется

Re: старые консоль аппликатион в делфи2005

Добавлено: 26 дек 2006, 23:44
Ramzey
somewhere писал(а):Ну переименуй его в Pas в конце-концов. И почему через буффер не выход - что он уже, не котируется
Потому, что вопрос ПОЧЕМУ он не открывает правильно?!
переименование в pas не помогает. бля что он гад (делфи2005) хочет от простых текстовых файлов?

Re: старые консоль аппликатион в делфи2005

Добавлено: 27 дек 2006, 00:26
Ramzey
АААААААААААА!!!!!!!!!!!!

Я всего мог ожидать, но...

1. Если в начале нет строки типа "program Project3" то для него он двойчный!!!
2. (САМЫЙ БОЛЬШОЙ УДАР ПО МОЕЙ ПСИХИКЕ!!!!) если в uses'ах имена стоят через запятую в одной строке:
uses SysUtils,Windows;
то он тоже двоичный!!!
А НАДО ТАК

Код: Выделить всё

uses SysUtils,
       Windows;
Тег code пришлось ставить для того, чтобы подчеркнуть, что если перед "Windows" нет пробелов, то все плохо.

Пришлось искать "десять отличий"

Кто нибудь объяснит этот маразм?