Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ISBN formatieren (https://www.delphipraxis.net/63968-isbn-formatieren.html)

Kinimod8 25. Feb 2006 13:20


ISBN formatieren
 
Hallo,

ich möchte gerne in meinem Programm eingegebene ISBN-Nummern formatieren. Also zum Beispiel "3442458161" in "3-442-45816-1" umformatieren.

Im Internet habe ich schon zwei PHP-Programme gefundern, die meinen Wunsche erfüllen - eines davon sogar mit Quelltext, den man wohl übersetzen könnte. Jedoch ist es denke ich die Frage wert, ob es möglicherweise eine fertige Delphi-Version gibt. :oops:

Weblinks:
- http://www-user.tu-chemnitz.de/~poenisch/isbn/index.php
- http://www.nicohaase.de/isbn.php (mit Quellcode)

Schon einmal Danke im Vorraus :wink:

marabu 25. Feb 2006 13:43

Re: ISBN formatieren
 
Hallo Dominik,

danke für die Links.

Delphi-Quellcode:
function PrettyISBN(isbn: String): String;
var
  det: String;
begin
  Result := isbn;
  if (Length(isbn) <> 10) or (isbn[1] in ['7', '8', '9']) then
    Exit;
  if isbn[2] in ['0', '1'] then
    Insert('-', Result, 4)
  else if isbn[1] = '1' then
  begin
    det := Copy(isbn, 2, 4);
    if det < '5500' then
      Insert('-', Result, 5)
    else if det < '8698' then
      Insert('-', Result, 7)
    else if det < '9990' then
      Insert('-', Result, 8)
    else
      Insert('-', Result, 9);
  end
  else
  begin
    det := Copy(isbn, 2, 2);
    if det < '70' then
      Insert('-', Result, 5)
    else if det < '85' then
      Insert('-', Result, 6)
    else if det < '90' then
      Insert('-', Result, 7)
    else if det < '95' then
      Insert('-', Result, 8)
    else
      Insert('-', Result, 9);
  end;
  Insert('-', Result, 2);
  Insert('-', Result, 12);
end;
Grüße vom marabu

Kinimod8 25. Feb 2006 13:51

Re: ISBN formatieren
 
Hallo marabu,

danke für den Code :wink: ! Funktioniert!

Wen es interressiert: http://hsb.ph-karlsruhe.de/isbn.htm - dort gibt es eine Javascript-Version.

NoGAD 12. Apr 2021 23:42

AW: Re: ISBN formatieren
 
Hallo,

dieser Beitrag ist zwar schon uralt, aber ich habe
Zitat:

Zitat von marabu (Beitrag 431186)
Grüße vom marabu

die Funktion für ISBN-13 erweitert:


Delphi-Quellcode:
function PrettyISBN(sISBN: String): String;
var
  Dummy_String: String;
  Dummy_String_ISBN13: String;
  det: String;
begin

  Result := sISBN;
  Dummy_String := sISBN;

  if sISBN.Length > 10 then
  begin
    Dummy_String_ISBN13 := copy(sISBN, 1, 3);
    Dummy_String := copy(sISBN, 4, sISBN.Length);
    Result := Dummy_String;
  end;

  if Dummy_String[2] in ['0', '1'] then
    Insert('-', Result, 4)
  else if Dummy_String[1] = '1' then
  begin
    det := copy(Dummy_String, 2, 4);
    if det < '5500' then
      Insert('-', Result, 5)
    else if det < '8698' then
      Insert('-', Result, 7)
    else if det < '9990' then
      Insert('-', Result, 8)
    else
      Insert('-', Result, 9);
  end
  else
  begin
    det := copy(Dummy_String, 2, 2);
    if det < '70' then
      Insert('-', Result, 5)
    else if det < '85' then
      Insert('-', Result, 6)
    else if det < '90' then
      Insert('-', Result, 7)
    else if det < '95' then
      Insert('-', Result, 8)
    else
      Insert('-', Result, 9);
  end;
  Insert('-', Result, 2);
  Insert('-', Result, 12);

  if sISBN.Length > 10 then
    Result := Dummy_String_ISBN13 + '-' + Result;
end;
Es können ISBN-10 oder ISBN-13 formatiert werden.

LG Mathias


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz