AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Android App, zusätzlich eine TStringlist abspeichern
Thema durchsuchen
Ansicht
Themen-Optionen

Android App, zusätzlich eine TStringlist abspeichern

Ein Thema von Alex_ITA01 · begonnen am 12. Sep 2014 · letzter Beitrag vom 18. Sep 2014
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.386 Beiträge
 
Delphi 12 Athens
 
#6

AW: Android App, zusätzlich eine TStringlist abspeichern

  Alt 17. Sep 2014, 09:18
Delphi-Quellcode:
function TPrgData.GetDevelopDatDir:String;
// für die Entwicklungsphase, da TPath.GetHomePath bei jeder Installation aus der IDE
// heraus gelöscht wird.
var res:String;
begin
  res:=TPath.GetSharedDownloadsPath;
  while (copy(res, length(res), 1)<>TPath.DirectorySeparatorChar) and (res<>'') do
    System.Delete(res,length(res),1);
  result:=res+'MyTestApp' + TPath.DirectorySeparatorChar; //'/storage/sdcard0/MyTestApp/';
end;
Und das funktioniert?
Wo doch im mobilen Sektor jetzt die Strings standardmäßig 0- und nicht mehr 1-indiziert sind und somit das Length nicht mehr den letzten Char trifft.
Es gibt auch so Funktionen wie EndsStr, oder den High- und Low-Befehl, welcher den richtigen Index benutzt und die neuen String-Helper sind überall 0-basierend.
Delphi-Quellcode:
Low(string) // das erst Char (0 oder 1)
Low(StrVar) // das erst Char (0 oder 1)
High(StrVar) // das letzte Char
Length(StrVar) // die Zeichennzahl

Und wenn du schon die neuen Konstanten der IOUtils verwendest (anstatt dem alten PathDelim), warum machst du dann immernoch alles per Hand, obwohl es schon seit Jahrzehnten Funktionen dafür gibt?
(ich mein vorallem die komische Schleife > ExtractFilePath/ExtractFileDir)
Delphi-Quellcode:
function TPrgData.GetDevelopDatDir: string;
// für die Entwicklungsphase, da TPath.GetHomePath bei jeder Installation aus der IDE heraus gelöscht wird.
begin
  Result := TPath.GetSharedDownloadsPath;
  Result := ExtractFilePath(Result);
  Result := IncludeTrailingPathDelimiter(Result + 'MyTestApp'); //'/storage/sdcard0/MyTestApp/';
end;

function TPrgData.GetDevelopDatDir: string;
begin
  Result := IncludeTrailingPathDelimiter(ExtractFilePath(TPath.Combine(TPath.GetSharedDownloadsPath, 'MyTestApp')));
  // für die Entwicklungsphase, da TPath.GetHomePath bei jeder Installation aus der IDE heraus gelöscht wird.
// Result := '/storage/sdcard0/MyTestApp/';
end;
Für die beiden Funktionen IncludeTrailingPathDelimiter und ExtractFilePath gibt es in der IOUtils bestimmt auch neue Implementationen, die ich jetzt aber nicht im Kopf hab. (sowas wie TPath.GetDirName)

Man kann auch {$IFDEF DEBUG} verwenden, welches standardmäßig im Debug-Profil gesetzt ist.
Oder man erstellt sich eigene DEFINEs, für seine Developmentumgbung, wo man dann so Funktionen, wie diesen Pfad, automatisch umschalten kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Sep 2014 um 09:23 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz