Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2014, 04:18   #1
goshek
Пользователь
 
Регистрация: 07.01.2014
Сообщений: 33
По умолчанию заполнение массива

Помогите решить задачу.

-файл эксель, в нем 19574 города
-каждому городу необходимо присвоить код a-z, 0-9. Код должен быть минимум из 3 символов
-код города должен быть уникальным

в моем распоряжение вижуал студио.

Заранее спасибо
goshek вне форума Ответить с цитированием
Старый 07.01.2014, 05:15   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

своеобразная система счисления, коль по аналогии с 16-ричная сс, сперва числа, потом буквы... в итоге получается 36-ричная система счисления... отсюда можешь копать... даже по примитиву брать число с левого столбца экселя и переводить в свою систему... а коль 3 символа стабильно надо - добиваешь спереди что не хватает нулями и все
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 07.01.2014, 06:36   #3
goshek
Пользователь
 
Регистрация: 07.01.2014
Сообщений: 33
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
своеобразная система счисления, коль по аналогии с 16-ричная сс, сперва числа, потом буквы... в итоге получается 36-ричная система счисления... отсюда можешь копать... даже по примитиву брать число с левого столбца экселя и переводить в свою систему... а коль 3 символа стабильно надо - добиваешь спереди что не хватает нулями и все
уточняю свой вопрос. Возможно ли при помощи какого либо программнго языка сгенерировать 19574 значений? Конечно же они должны соответствовать критериям (a-z,0-9, минимум 3 знака)
goshek вне форума Ответить с цитированием
Старый 07.01.2014, 07:52   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

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

Последний раз редактировалось VIK_aka_TOR; 07.01.2014 в 08:11.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 07.01.2014, 09:34   #5
DpolenST
Форумчанин
 
Регистрация: 28.09.2013
Сообщений: 115
По умолчанию

Цитата:
Сообщение от goshek Посмотреть сообщение
уточняю свой вопрос. Возможно ли при помощи какого либо программнго языка сгенерировать 19574 значений? Конечно же они должны соответствовать критериям (a-z,0-9, минимум 3 знака)
возможно, и в excel возможно
к примеру
A1 = "abcd123456"
A2 = "10000"
B2 = "=СЦЕПИТЬ(ПСТР($A$1;ПСТР(A2;1;1)+1; 1);ПСТР($A$1;ПСТР(A2;2;1)+1;1);ПСТР ($A$1;ПСТР(A2;3;1)+1;1);ПСТР($A$1;П СТР(A2;4;1)+1;1);ПСТР($A$1;ПСТР(A2; 5;1)+1;1))"

и затем тянем ячейки A2:B2 вниз

наверняка есть и более простое решение
Что бы еще такого сделать, чтобы ничего не делать?
DpolenST вне форума Ответить с цитированием
Старый 07.01.2014, 10:08   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,848
По умолчанию

Если использовать 3 знака из алфавита {a-z,0-9}, то это 36^3=46656 всевозможных комбинаций. То есть тут не минимум 3 знака, а 3 знаков вполне достаточно для 19574 значений.
Arigato вне форума Ответить с цитированием
Старый 07.01.2014, 12:33   #7
goshek
Пользователь
 
Регистрация: 07.01.2014
Сообщений: 33
По умолчанию

Спасибо всем за внимание. Но не могли бы максимально подробно расписать как написать такой генератор (то есть его программный код, чтобы я мог воспроизвести это в визжуал студио)? Я по специальности логист, но столкнулся с такой проблемой и решил, что забивать 19574 значения в ручную в 21 веке глупо) Прошу прощения за свою безграмотность в мире программирования.
goshek вне форума Ответить с цитированием
Старый 07.01.2014, 12:45   #8
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

goshek
Мне кажется, тебе выше код уже написали и студия не нужна. Даже написали куда что вставить.

Если тебе именно в студии нужно - то укажи на каком языке (если имеет значение) и что должно быть в результате - файл экселя или 19754 значения на экране ("Возможно ли при помощи какого либо программнго языка сгенерировать 19574 значений?").

Последний раз редактировалось rrrFer; 07.01.2014 в 12:47.
rrrFer вне форума Ответить с цитированием
Старый 08.01.2014, 01:54   #9
goshek
Пользователь
 
Регистрация: 07.01.2014
Сообщений: 33
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
goshek
Мне кажется, тебе выше код уже написали и студия не нужна. Даже написали куда что вставить.

Если тебе именно в студии нужно - то укажи на каком языке (если имеет значение) и что должно быть в результате - файл экселя или 19754 значения на экране ("Возможно ли при помощи какого либо программнго языка сгенерировать 19574 значений?").
язык не имеет значения. 19754 значений,чтобы я мог тупо их вставить в свой файл

Цитата:
Сообщение от DpolenST Посмотреть сообщение
возможно, и в excel возможно
к примеру
A1 = "abcd123456"
A2 = "10000"
B2 = "=СЦЕПИТЬ(ПСТР($A$1;ПСТР(A2;1;1)+1; 1);ПСТР($A$1;ПСТР(A2;2;1)+1;1);ПСТР ($A$1;ПСТР(A2;3;1)+1;1);ПСТР($A$1;П СТР(A2;4;1)+1;1);ПСТР($A$1;ПСТР(A2; 5;1)+1;1))"

и затем тянем ячейки A2:B2 вниз

наверняка есть и более простое решение
Можно чуточку подробней как то пожалуйста? эксель не дает присвоить А1 значение, которое вы привели в своем примере. Спасибо

Последний раз редактировалось Stilet; 08.01.2014 в 09:17.
goshek вне форума Ответить с цитированием
Старый 08.01.2014, 02:29   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, если так сильно надо, сгенерите самостоятельно вот этой программой:
Project7_exe.rar


p.s. исходник (Delphi) такой:
Project7_source.rar
Код:
unit Unit5;

interface

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

type
  TForm5 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

const
  Digits : string = '0123456789abcdefghijklmnopqrstuvwxyz';

function IntToCode(const A : integer; const Len : integer ) : string;
var AA : integer;
  i, Base : integer;
begin
  Result := '';
  if A = 0 then
   for i := 1 to Len do Result := Result + '0'
  else begin
    Base := Length(Digits);
    AA := A;
    while AA>0 do begin
      Result :=  Digits[ (AA mod Base)+1 ] + Result;
      AA := AA div Base;
    end;
    while Length(Result)<Len do Result := '0' +Result;
    
  end;
end;

procedure TForm5.Button1Click(Sender: TObject);
var  ts : TStringList;
  i, N : integer;
begin
  Memo1.Clear;
  N := StrToIntDef(Edit1.Text, 0);
  try
    ts := TStringList.Create.Create;
    for i := 0 to N do
      ts.Append(  IntToCode(i,3) );
  finally
    Memo1.Text := ts.Text;
    ts.Free;
  end;
    
end;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение массива Kazik Помощь студентам 1 26.12.2012 13:55
заполнение массива на Си ддимочка Помощь студентам 3 02.09.2011 11:59
Заполнение массива Alex_Mason Общие вопросы Delphi 2 07.12.2010 22:58
заполнение массива GaLiof JavaScript, Ajax 4 01.11.2010 20:36
Заполнение массива. Небесный Общие вопросы C/C++ 3 01.09.2009 01:39