Bitte Windows iPod-Benutzer um Test meines Programms

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
Hallo liebe iPod Benutzer,

ich habe ein Programm geschrieben, welches einen beliebigen Text (z. B. ein Zeitungsartikel) an den iPod schickt. Dieses Programm "splittet" den Text automatisch, wenn dieser zu groß für die iPod Textdatei wäre.

Würdet ihr dieses Programm mal für mich testen und mir sagen wie es euch gefällt und was man verbessern sollte?

Programmiert habe ich an einem NT Rechner (funktioniert also auf Win 2k und XP) und probiert habe ich es mit meinem iPod mini.

Über Kritik würde ich mich freuen!

P. S.: So Kleinigkeiten, wie das Icon ändern werden natürlich noch erledigt ;)
 

cym

Aktives Mitglied
Registriert
03.05.2004
Beiträge
1.366
Habs nicht getestet, aber gibts das auch für Mac? ;)
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
Wie waers, wenn du den Source unter GNU/GPL v2.0 stellst, dann kann ich mal reinschauen und evlt. ein biszchen rumpfuschen - Mac-Portierung :D
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
Den Code willst du nicht wirklich sehen.

Ich sage nur Chaos ;) Aber wenn du wirklich Interesse hast, dann poste ich ihn mal mit Kommentaren. Ich habs übrigens in Delphi geschrieben.
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
netzwerk schrieb:
Den Code willst du nicht wirklich sehen.

Ich sage nur Chaos ;) Aber wenn du wirklich Interesse hast, dann poste ich ihn mal mit Kommentaren. Ich habs übrigens in Delphi geschrieben.

Axo Delphi. Aber kannst trotzdem mal als Code-Schnippsel hier posten :D
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
Bitte! Hoffentlich erschreckt das jetzt niemanden.
Code:
var
  Form1: TForm1;
  Memos: array[0..1000]of TMemo;
  iPodstring: string;

implementation

{$R *.dfm}

function Laufwerksbuchstabe(Zeile:string):string;
var merk:string;
begin
 merk:=zeile;
 //Nimmt die ersten 2 Zeichen aus dem String (c:)
 Laufwerksbuchstabe:=merk[1]+merk[2]+'\';
end;


procedure TForm1.Button1Click(Sender: TObject);
var zaehle,i,check,j:integer;
begin
 //initialisiert die Memos in die später geschrieben wird
 for i:=1 to 1000 do
  begin
   Memos[i]:=TMemo.create(Self);
   Memos[i].Visible:=false;
   Memos[i].parent:=Form1;
  end;

 //zaehlt die Zeilen des Eingabememos
 zaehle:=Memo1.Lines.Count;

 //der text kann nur 56 memozeilen lang sein (4000 zeichen pro txt-datei auf dem iPod)
 check:=zaehle div 56;
 if zaehle > 56 then
  if zaehle mod 56 > 0 then inc(check);
 if check = 0 then
  begin
   for i:=0 to zaehle do
    begin
     Memos[1].Lines.Add(Memo1.Lines[i]);
    end;
  end
 else
  begin
   for j:=1 to check do
    begin
     for i:=(j-1)*56 to j*56-1 do
      begin
       Memos[j].Lines.Add(Memo1.Lines[i]);
       if i=zaehle then break;
      end;
    end;
  end;

 if check = 0 then
  Memos[1].Lines.SaveToFile(iPodstring+Edit1.Text+'[1].txt')
 else
  begin
   for j:=1 to check do
   Memos[j].Lines.SaveToFile(iPodstring+Edit1.Text+'['+IntToStr(j)+'].txt');
  end;

 Memo1.Clear;
 Edit1.Text:='Nachrichten';
 Label2.Visible:=True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var y,i:integer;
    iPod:boolean;
begin
 //test ob iPod vorhanden ist:


 //aktualisierung der drivecombobox
 with DriveComboBox1 do TextCase := TextCase;

 y:=DriveComboBox1.Items.Count;

 iPod:=false;

 for i:=0 to y-1 do
  begin
   if Laufwerksbuchstabe(DriveComboBox1.Items[i])<>'a:\' then
   if DirectoryExists(Laufwerksbuchstabe(DriveComboBox1.Items[i])+'\Notes\')= true then
      begin
      iPod:=true;
      iPodstring:=Laufwerksbuchstabe(DriveComboBox1.Items[i])+'\Notes\';
      break;
      end
      else iPod:=false;
  end;

 if iPod=true then
 begin
  Button1.Enabled:=True;
  Label1.Font.Color:=clGreen;
  Label1.Caption:='iPod angeschlossen';
 end
 else
 begin
  Button1.Enabled:=False;
  Label1.Font.Color:=clRed;
  Label1.Caption:='iPod nicht gefunden!'
 end
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin
 Label2.Visible:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 {schaltet die windows fehlermeldung aus, dass auf ein laufwerk
 nicht zugegriffen werden konnte... }
 SetErrorMode(SEM_FAILCRITICALERRORS);
end;


P. S.:Frag ruhig, wenn was unklar ist!
 
Zuletzt bearbeitet:

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
Waer noch nett, wenn du das Code-Schnippsel zwischen [ + CODE + ] ... reinschreibst :D
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
Ja, gut :D Ist halt ein 20 Min. Hack :D :D :D
In ANSI C 89 koenntest du noch ein DLL dazubauen, die entsprechende Malloc-Funktionen zur Verfuegung stellt, damit es bei groeszeren Textdateien nicht zum Crash kommt (oder halt ewig dauert, mit Prozessor-Auslastung von 100%) :D Und dann aus Delphi draus zugreifen :)
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
Denn sowas wie "zaehle:=Memo1.Lines.Count;" wuerde ich bei groeszeren Files meiden *fg*
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
Und ich habe folgende Ordnerstruktur unter D: (hab zwar keine Dose, aber nehmen wir mal an):

D:\Notes
...

:D (D: ist aber kein iPod *fg*)
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
Gute Idee. Ich kann ja auch einfach das Memo auf beispielsweise 5600 Zeilen begrenzen. Das wären genau 100 volle txt Dateien auf dem iPod - das müsste reichen.
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
ricci007 schrieb:
Und ich habe folgende Ordnerstruktur unter D: (hab zwar keine Dose, aber nehmen wir mal an):

D:\Notes
...

:D (D: ist aber kein iPod *fg*)
Sowas macht man doch nicht:D Ich kann ja noch die ganzen anderen Ordner vom iPod checken lassen. Dann wird die Wahrscheinlichkeit höher, dass es auch tatsächlich ein iPod ist.
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
netzwerk schrieb:
Sowas macht man doch nicht:D Ich kann ja noch die ganzen anderen Ordner vom iPod checken lassen. Dann wird die Wahrscheinlichkeit höher, dass es auch tatsächlich ein iPod ist.

Die anderen Order habe ich auch alle auf meinem fikiven D: :D Ich wuerde es ueber die Systeminformationen pruefen. Du kannst doch mit APIs bestimmte Dinge abfragen, wie z. B. Serien-Nr., oder ....
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
Guter Tipp! Mit "GetVolumeInformation" unter Delphi kein Problem. Danke!
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
Joa, hab leider keine Doze da und werde etz auch keine installieren (ich hasse M$), aber ich hab des selber schon mal gemacht... :D
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
ricci007 schrieb:
Joa, hab leider keine Doze da und werde etz auch keine installieren (ich hasse M$), aber ich hab des selber schon mal gemacht... :D
für linux oder mac?
 

netzwerk

Mitglied
Thread Starter
Registriert
30.12.2004
Beiträge
666
@ricci: Weißt du zufällig was alle iPods an Seriennummer gemeinsam haben? Vielleicht ein 'jq' am Anfang, wie bei meinem?
 

ricci007

Aktives Mitglied
Registriert
11.10.2004
Beiträge
2.547
netzwerk schrieb:
@ricci: Weißt du zufällig was alle iPods an Seriennummer gemeinsam haben? Vielleicht ein 'jq' am Anfang, wie bei meinem?

Keine Ahnung, wuerde ich aber auch nicht drauf gehen. Kannst du unter Windoze nicht bestimmen, was fuer eine Art Device das ist? Hersteller abfragen...
 
Oben